Ü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. Mit der Echtzeitwebfunktion kann serverseitiger Code Inhalte sofort an Clients pushen.

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 zwischen Servern (RPC) bereit. Die RPCs rufen Funktionen auf Clients über serverseitigen .NET Core-Code auf. Es gibt mehrere unterstützte Plattformen mit jeweils dem jeweiligen Client-SDK. Aus diesem Grund kann die Programmiersprache, die per Remoteprozeduraufruf aufgerufen wird, variieren.

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

  • Verarbeitet die Verbindungsverwaltung automatisch.
  • Sendet Nachrichten gleichzeitig an alle verbundenen Clients. Beispiel: ein Chatraum.
  • Sendet Nachrichten an bestimmte Clients oder Gruppen von Clients.
  • Skaliert, um zunehmenden Datenverkehr zu verarbeiten.

Die Quelle wird in einem Repository aufSignalR GitHub.

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 sich innerhalb der Funktionen des Servers und Clients befindet.

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 verarbeitet die Versendung über Computergrenzen hinweg automatisch, sodass Clients Methoden auf dem Server aufrufen können und umgekehrt. Sie können stark typierte Parameter an Methoden übergeben, wodurch die Modellbindung ermöglicht wird. SignalR stellt zwei integrierte Hubprotokolle zur Verfügung: 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 Level 2 unterstützen, um MessagePack-Protokollunterstützung zu bieten.

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 mit einer Methode im clientseitigen Code zu übereinstimmen. Wenn der Client eine Übereinstimmung findet, ruft er die -Methode auf und übergibt die deserialisierten Parameterdaten an sie.

Zusätzliche Ressourcen