Übersicht über ASP.NET CoreSignalR

Was ist SignalR?

SignalR ASP.NET Core ist eine Open-Source-Bibliothek, die das Hinzufügen von Echtzeit-Webfunktionen zu Apps vereinfacht. Die Echtzeit-Webfunktionalität ermöglicht serverseitigem Code das sofortige Pushen von Inhalten an Clients.

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 (RPC) für Server-zu-Client bereit. Die RPCs rufen Funktionen auf Clients aus serverseitigem .NET Core-Code auf. Es gibt mehrere unterstützte Plattformen mit jeweils ihrem jeweiligen Client-SDK. Aus diesem Grund kann die Programmiersprache, die per Remoteprozeduraufruf aufgerufen wird, variieren.

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

  • Übernimmt die Verbindungsverwaltung automatisch.
  • Sendet Nachrichten gleichzeitig an alle verbundenen Clients. Beispiel: ein Chatroom.
  • Sendet Nachrichten an bestimmte Clients oder Gruppen von Clients.
  • Skaliert, um steigenden Datenverkehr zu verarbeiten.
  • SignalR Hub-Protokoll

Die Quelle wird in einem SignalR Repository auf GitHub gehostet.

Transportprotokolle

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

  • WebSockets
  • Vom Server gesendete Ereignisse
  • Lange Abrufe

SignalR wählt automatisch die beste Transportmethode aus, die innerhalb der Funktionen des Servers und clients liegt.

Hubs

SignalR verwendet Hubs für die Kommunikation zwischen Clients und Servern.

Ein Hub ist eine allgemeine Pipeline, über die ein Client und ein Server untereinander Methoden aufrufen können. SignalR übernimmt die Verteilung über Computergrenzen hinweg automatisch, sodass Clients Methoden auf dem Server aufrufen können und umgekehrt. Sie können stark typisierte Parameter an Methoden übergeben, wodurch die Modellbindung aktiviert wird. SignalR stellt zwei integrierte Hubprotokolle bereit: ein Textprotokoll, das auf JSON basiert, und ein binäres Protokoll, das auf MessagePack basiert. MessagePack erstellt im Allgemeinen kleinere Nachrichten im Vergleich zu JSON. Ältere Browser müssen XHR-Ebene 2 unterstützen, um die Unterstützung des MessagePack-Protokolls bereitzustellen.

Hubs rufen clientseitigen Code auf, indem Nachrichten gesendet werden, die den Namen und die 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 die deserialisierten Parameterdaten an sie.

Browser, die ECMAScript 6 (ES6) nicht unterstützen

SignalR zielt auf ES6 ab. Für Browser, die ES6 nicht unterstützen, transpilieren Sie die Bibliothek in ES5. Weitere Informationen finden Sie unter Erste Schritte mit ES6 – Transpilieren von ES6 zu ES5 mit Traceur und Babel.

Zusätzliche Ressourcen