Übersicht über ASP.NET CoreSignalR

Was ist SignalR?

SignalR ASP.NET Core ist eine Open-Source-Bibliothek, die das Hinzufügen von Echtzeitwebfunktionen zu Apps vereinfacht. Echtzeitwebfunktionen ermöglichen serverseitigen Code, Inhalte sofort an Clients zu übertragen.

Gute Kandidaten für SignalR:

  • Apps, für die eine hohe Frequenz von Updates vom Server benötigt wird. Beispiele hierfür sind Apps aus den Bereichen Gaming, soziale Netzwerke, Voting, Auktionen, Karten und GPS.
  • Dashboards und Überwachungs-Apps. Beispiele hierfür sind Unternehmensdashboards, Sofortupdates von Verkaufszahlen oder Reisehinweise.
  • Apps für die Zusammenarbeit. Whiteboard-Apps und Software für Teambesprechungen sind Beispiele für Apps für die Zusammenarbeit.
  • Apps, für die Benachrichtigungen benötigt werden. Soziale Netzwerke, E-Mail, Chat, Games, Reisehinweise und viele andere Arten von Apps nutzen Benachrichtigungen.

SignalR stellt eine API zum Erstellen von Remoteprozeduraufrufen (Remote Procedure Calls, RPC) für server-zu-Client bereit. Die RPCs rufen Funktionen auf Clients von serverseitigem .NET Core-Code auf. Es gibt mehrere unterstützte Plattformen, jeweils mit ihrem jeweiligen Client-SDK. Aus diesem Grund kann die Programmiersprache, die per Remoteprozeduraufruf aufgerufen wird, variieren.

Hier sind einige Features SignalR für ASP.NET Core:

  • Verarbeitet die Verbindungsverwaltung automatisch.
  • Sendet Nachrichten gleichzeitig an alle verbundenen Clients. Ein Chatroom beispielsweise.
  • Sendet Nachrichten an bestimmte Clients oder Gruppen von Clients.
  • Skaliert, um den zunehmenden Datenverkehr zu verarbeiten.

Die Quelle wird in einem SignalR Repository auf GitHub gehostet.

Transportprotokolle

SignalR unterstützt die folgenden Techniken für die Behandlung der Echtzeitkommunikation (in Reihenfolge des ordnungsgemäßen Fallbacks):

  • WebSockets
  • Vom Server gesendete Ereignisse
  • Lange Abrufe

SignalR wählt automatisch die beste Transportmethode aus, die sich innerhalb der Funktionen des Servers und des Clients befindet.

Hubs

SignalR verwendet Hubs , um zwischen Clients und Servern zu kommunizieren.

Ein Hub ist eine allgemeine Pipeline, über die ein Client und ein Server untereinander Methoden aufrufen können. SignalR verarbeitet die Verteilerfunktion automatisch über Computergrenzen hinweg, sodass Clients Methoden auf dem Server aufrufen und umgekehrt aufrufen können. Sie können stark typierte Parameter an Methoden übergeben, die die Modellbindung ermöglichen. SignalR stellt zwei integrierte Hubprotokolle bereit: ein Textprotokoll basierend auf JSON und einem binärprotokoll basierend auf MessagePack. MessagePack erstellt im Allgemeinen kleinere Nachrichten im Vergleich zu JSON. Ältere Browser müssen XHR-Ebene 2 unterstützen, um die MessagePack-Protokollunterstützung bereitzustellen.

Hubs rufen clientseitigen Code auf, indem Nachrichten gesendet werden, die den Namen und parameter der clientseitigen Methode enthalten. Objekte, die als Methodenparameter gesendet werden, werden mithilfe des konfigurierten Protokolls deserialisiert. Der Client versucht, den Namen einer Methode im clientseitigen Code zuzuordnen. Wenn der Client eine Übereinstimmung findet, ruft er die Methode auf und übergibt sie an die deserialisierten Parameterdaten.

Zusätzliche Ressourcen