ASP.NET SignalR von Microsoft ist eine Open-Source-Bibliothek, die Echtzeitdaten auf der Basis von Websockets überträgt. Die Bibliothek existiert bereits seit 10 Jahren und wurde in zahlreiche andere Produkte integriert. Sie ist integraler Bestandteil von .NET Blazor zur Erstellung von Progressive Web Apps (PWA).
Chat-Apps werden oft als Beispiel für die Übertragung von Echtzeitdaten in Android-, iOS- und Web-Apps genannt. Es gibt jedoch viele andere Beispiele. Grundsätzlich können Sie immer dann über die Implementierung von Websockets nachdenken, wenn Ihre Nutzer aktiv eine Webseite neu laden, um aktualisierte Daten zu sehen. Das können Echtzeit-Börsenkurse, aktuelle Wetterdaten, Live-Standort-Informationen und vieles mehr sein.
Mit SignalR können Sie diese Informationen gezielt und effizient aktualisieren, ohne dass Ihre Nutzer aktiv werden müssen. Dies spart in vielen Fällen Rechenkapazität und Bandbreite, da nur bestimmte Daten Ihrer Anwendung aktualisiert werden und nicht die gesamte Seite.
Herkömmliche HTTP-Verbindungen haben eine Frage-Antwort-Struktur. Der Client sendet eine Anfrage an den Server, der Server antwortet und sendet die Antwort an den Client zurück. Dann wird die Verbindung geschlossen.
Websockets werden verwendet, um eine persistente Verbindung zwischen Server und Client aufrecht zu erhalten. Über diese persistente Verbindung können Daten vom Server zum Client und umgekehrt gesendet werden. Dies ist z.B. bei der Chat-Anwendung der Fall. Viele Benutzer senden Nachrichten an den Server, die dann vom Server an die Benutzer verteilt werden. Bei einer Wetteranwendung würde der Server die aktuellen Wetterdaten an die Clients senden, im Idealfall aber nur die Daten, die für den jeweiligen Benutzer relevant und aktuell sind.
Websockets gibt es natürlich schon etwas länger als SignalR. Allerdings ist die Implementierung von Websockets mit erheblichem Aufwand verbunden. Außerdem benötigt man einen Webserver, der diese Art der bidirektionalen persistenten Kommunikation unterstützt. Im Microsoft-Umfeld ist dies seit IIS 8 und ASP.NET 4.5 einfacher geworden.
ASP.NET SignalR ist seit 10 Jahren Bestandteil des ASP.NET Frameworks. Damit hat es einen Reifegrad erreicht, der insbesondere für Enterprise-Anwendungen interessant ist. Die Bibliothek fügt sich nahtlos in bestehende ASP.NET Core Webanwendungen ein. Sie arbeitet problemlos mit anderen Komponenten wie dem Entity Framework und Identity Providern zusammen, so dass keine Abstriche bei der Sicherheit gemacht werden müssen.
Neben der Server-Komponente bietet SignalR eine JavaScript-Bibliothek, die in verschiedenste Anwendungen integriert werden kann. Dies können Webanwendungen, Desktopanwendungen, Android und iOS Apps und sogar Spiele sein.
Wenn Sie Ihre Anwendungen mit Echtzeitdaten auf die nächste Stufe bringen wollen, kontaktieren Sie uns. Wir beraten Sie gerne. Neben der Implementierung von Websockets mittels SignalR können wir Sie auch zu Alternativen und den direkt angrenzenden IT-Themen Webserver, Reverse Proxy und Load-Balancing kompetent beraten.