Úvod do ASP.NET CoreSignalRIntroduction to ASP.NET Core SignalR

Co je to SignalR ?What is SignalR?

ASP.NET Core SignalR je open source knihovna, která zjednodušuje přidávání webových funkcí v reálném čase do aplikací.ASP.NET Core SignalR is an open-source library that simplifies adding real-time web functionality to apps. Webová funkce v reálném čase umožňuje, aby kód na straně serveru nabízel okamžitý obsah klientům.Real-time web functionality enables server-side code to push content to clients instantly.

Dobré kandidáty pro SignalR :Good candidates for SignalR:

  • Aplikace, které vyžadují aktualizace ze serveru s vysokou frekvencí.Apps that require high frequency updates from the server. Příkladem jsou hry, sociální sítě, hlasování, aukce, mapy a aplikace využívající GPS.Examples are gaming, social networks, voting, auction, maps, and GPS apps.
  • Řídicí panely a aplikace pro monitorování.Dashboards and monitoring apps. Mezi příklady patří řídicí panely společností, okamžité a aktuální informace o prodeji nebo upozornění pro cestující.Examples include company dashboards, instant sales updates, or travel alerts.
  • Aplikace podporující spolupráci.Collaborative apps. Příklady aplikací podporujících spolupráci jsou aplikace tabulí a software pro týmové schůzky.Whiteboard apps and team meeting software are examples of collaborative apps.
  • Aplikace, které vyžadují oznámení.Apps that require notifications. Oznámení využívají sociální sítě, e-mailové aplikace, chaty, hry, upozornění pro cestující a řada dalších aplikací.Social networks, email, chat, games, travel alerts, and many other apps use notifications.

SignalRposkytuje rozhraní API pro vytváření vzdálených volání procedur (RPC)mezi servery. provides an API for creating server-to-client remote procedure calls (RPC). Volání RPC volá funkce JavaScriptu na klientech z kódu .NET Core na straně serveru.The RPCs call JavaScript functions on clients from server-side .NET Core code.

Zde jsou některé funkce SignalR pro ASP.NET Core:Here are some features of SignalR for ASP.NET Core:

  • Zpracovává správu připojení automaticky.Handles connection management automatically.
  • Odesílá současně zprávy všem připojeným klientům.Sends messages to all connected clients simultaneously. Například chatovací místnost.For example, a chat room.
  • Odesílá zprávy konkrétním klientům nebo skupinám klientů.Sends messages to specific clients or groups of clients.
  • Škálujte na zvýšení provozu.Scales to handle increasing traffic.

Zdroj je hostovaný v SignalR úložišti na GitHubu.The source is hosted in a SignalR repository on GitHub.

PřenosyTransports

SignalRpodporuje následující techniky pro zpracování komunikace v reálném čase (v pořadí podle řádného použití): supports the following techniques for handling real-time communication (in order of graceful fallback):

  • WebSocketsWebSockets
  • Události odeslané serveremServer-Sent Events
  • Dlouhé cyklické dotazováníLong Polling

SignalRautomaticky zvolí nejlepší přenosovou metodu, která je v rámci schopností serveru a klienta. automatically chooses the best transport method that is within the capabilities of the server and client.

CentraHubs

SignalRpoužívá centra ke komunikaci mezi klienty a servery. uses hubs to communicate between clients and servers.

Centrum je kanál vysoké úrovně, který umožňuje klientovi a serveru volat metody na sebe navzájem.A hub is a high-level pipeline that allows a client and server to call methods on each other. SignalRzpracovává odesílání mezi hranicemi počítačů automaticky a umožňuje klientům volat metody na serveru a naopak. handles the dispatching across machine boundaries automatically, allowing clients to call methods on the server and vice versa. Můžete předat parametry silného typu metodám, které umožňují vazbu modelu.You can pass strongly-typed parameters to methods, which enables model binding. SignalRposkytuje dva integrované protokoly rozbočovače: textový protokol založený na formátu JSON a binární protokol založený na MessagePack. provides two built-in hub protocols: a text protocol based on JSON and a binary protocol based on MessagePack. MessagePack obvykle vytváří menší zprávy ve srovnání se JSON.MessagePack generally creates smaller messages compared to JSON. Aby bylo možné poskytovat podporu protokolu MessagePack, starší prohlížeče musí podporovat XHR úrovně 2 .Older browsers must support XHR level 2 to provide MessagePack protocol support.

Centra volají kód na straně klienta odesláním zpráv, které obsahují název a parametry metody na straně klienta.Hubs call client-side code by sending messages that contain the name and parameters of the client-side method. Objekty odeslané jako parametry metody jsou deserializovány pomocí nakonfigurovaného protokolu.Objects sent as method parameters are deserialized using the configured protocol. Klient se pokusí porovnat název s metodou v kódu na straně klienta.The client tries to match the name to a method in the client-side code. Když klient najde shodu, zavolá metodu a předá jí deserializovaná data parametrů.When the client finds a match, it calls the method and passes to it the deserialized parameter data.

Další zdrojeAdditional resources