Einführung in ASP.NET Core SignalRIntroduction to ASP.NET Core SignalR

Was ist SignalR?What is SignalR?

ASP.net Core SignalR ist eine Open-Source-Bibliothek, die das Hinzufügen von Echt Zeit Webfunktionen zu apps vereinfacht.ASP.NET Core SignalR is an open-source library that simplifies adding real-time web functionality to apps. Die Echt Zeit webolle ermöglicht es dem serverseitigen Code, Inhalte sofort per Push an Clients zu übersetzen.Real-time web functionality enables server-side code to push content to clients instantly.

Gute Kandidaten für SignalR :Good candidates for SignalR:

  • Apps, für die eine hohe Frequenz von Updates vom Server benötigt wird.Apps that require high frequency updates from the server. Beispiele hierfür sind Apps aus den Bereichen Gaming, soziale Netzwerke, Voting, Auktionen, Karten und GPS.Examples are gaming, social networks, voting, auction, maps, and GPS apps.
  • Dashboards und Überwachungs-Apps.Dashboards and monitoring apps. Beispiele hierfür sind Unternehmensdashboards, Sofortupdates von Verkaufszahlen oder Reisehinweise.Examples include company dashboards, instant sales updates, or travel alerts.
  • Apps für die Zusammenarbeit.Collaborative apps. Whiteboard-Apps und Software für Teambesprechungen sind Beispiele für Apps für die Zusammenarbeit.Whiteboard apps and team meeting software are examples of collaborative apps.
  • Apps, für die Benachrichtigungen benötigt werden.Apps that require notifications. Soziale Netzwerke, E-Mail, Chat, Games, Reisehinweise und viele andere Arten von Apps nutzen Benachrichtigungen.Social networks, email, chat, games, travel alerts, and many other apps use notifications.

SignalR stellt eine API zum Erstellen von Remote Prozedur aufrufen (RPC)für Server-zu-Client bereit.SignalR provides an API for creating server-to-client remote procedure calls (RPC). Die RPCs wenden JavaScript-Funktionen auf Clients aus dem serverseitigen .net Core-Code an.The RPCs call JavaScript functions on clients from server-side .NET Core code.

Im folgenden sind einige Features von SignalR für ASP.net Core aufgeführt:Here are some features of SignalR for ASP.NET Core:

  • Behandelt die Verbindungs Verwaltung automatisch.Handles connection management automatically.
  • Sendet Nachrichten gleichzeitig an alle verbundenen Clients.Sends messages to all connected clients simultaneously. Beispielsweise ein Chatraum.For example, a chat room.
  • Sendet Nachrichten an bestimmte Clients oder Client Gruppen.Sends messages to specific clients or groups of clients.
  • Skaliert, um zunehmenden Datenverkehr zu verarbeiten.Scales to handle increasing traffic.

Die Quelle wird in einem SignalR Repository auf GitHubgehostet.The source is hosted in a SignalR repository on GitHub.

TransportprotokolleTransports

SignalR unterstützt die folgenden Verfahren für die Verarbeitung der Echtzeitkommunikation (in der Reihenfolge des ordnungsgemäßen Fallbacks):SignalR supports the following techniques for handling real-time communication (in order of graceful fallback):

SignalR wählt automatisch die beste Transportmethode aus, die sich innerhalb der Funktionen des Servers und des Clients befindet.SignalR automatically chooses the best transport method that is within the capabilities of the server and client.

HubsHubs

SignalR verwendet Hubs für die Kommunikation zwischen Clients und Servern.SignalR uses hubs to communicate between clients and servers.

Ein Hub ist eine Pipeline auf hoher Ebene, die es einem Client und einem Server ermöglicht, Methoden untereinander aufzurufen.A hub is a high-level pipeline that allows a client and server to call methods on each other. SignalR verarbeitet die Verteilung über die Computer Grenzen hinweg automatisch, sodass Clients Methoden auf dem Server aufrufen können und umgekehrt.SignalR handles the dispatching across machine boundaries automatically, allowing clients to call methods on the server and vice versa. Sie können stark typisierte Parameter an Methoden übergeben, die die Modell Bindung ermöglichen.You can pass strongly-typed parameters to methods, which enables model binding. SignalR stellt zwei integrierte Hub-Protokolle bereit: ein auf JSON basierendes Text Protokoll und ein auf messagepackbasierendes binäres Protokoll.SignalR provides two built-in hub protocols: a text protocol based on JSON and a binary protocol based on MessagePack. Im Allgemeinen erstellt messagepack kleinere Nachrichten im Vergleich zu JSON.MessagePack generally creates smaller messages compared to JSON. Ältere Browser müssen XHR Level 2 unterstützen, um Unterstützung für das messagepack-Protokoll bereitzustellen.Older browsers must support XHR level 2 to provide MessagePack protocol support.

Hubs wenden Client seitigen Code an, indem Sie Nachrichten senden, die den Namen und die Parameter der Client seitigen Methode enthalten.Hubs call client-side code by sending messages that contain the name and parameters of the client-side method. Objekte, die als Methoden Parameter gesendet werden, werden mithilfe des konfigurierten Protokolls deserialisiert.Objects sent as method parameters are deserialized using the configured protocol. Der Client versucht, den Namen einer Methode im Client seitigen Code zuzuordnen.The client tries to match the name to a method in the client-side code. Wenn der Client eine Entsprechung findet, ruft er die-Methode auf und übergibt die deserialisierten Parameterdaten an ihn.When the client finds a match, it calls the method and passes to it the deserialized parameter data.

Zusätzliche RessourcenAdditional resources