Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Vad är SignalR?
ASP.NET Core SignalR är ett bibliotek med öppen källkod som förenklar tillägg av webbfunktioner i realtid i appar. Realtidswebbfunktioner gör att kod på serversidan kan skicka innehåll till klienter direkt.
Lämpliga kandidater för SignalR:
- Appar som kräver uppdateringar med hög frekvens från servern. Exempel är spel, sociala nätverk, röstning, auktion, kartor och GPS-appar.
- Instrumentpaneler och övervakningsappar. Exempel är företagets instrumentpaneler, omedelbara försäljningsuppdateringar eller reseaviseringar.
- Collaborative apps. Whiteboard-appar och teammötesprogram är exempel på samarbetsappar.
- Appar som kräver meddelanden. Sociala nätverk, e-post, chatt, spel, reseaviseringar och många andra appar använder aviseringar.
SignalRtillhandahåller ett API för att skapa fjärrproceduranrop från server till klient (RPC). RPC:erna anropar funktioner på klienter från .NET-kod på serversidan. Det finns flera plattformar som stöds, var och en med respektive klient-SDK. Därför varierar det programmeringsspråk som anropas av RPC-anropet.
Här följer några funktioner SignalR för ASP.NET Core:
- Hanterar anslutningshantering automatiskt.
- Skickar meddelanden till alla anslutna klienter samtidigt. Till exempel ett chattrum.
- Skickar meddelanden till specifika klienter eller grupper av klienter.
- Skalbarhet för att hantera ökande trafik.
- SignalR Hubbprotokoll
Källan finns på en SignalR lagringsplats på GitHub.
Transports
SignalR stöder följande tekniker för hantering av realtidskommunikation (i ordning efter smidig övergång):
- WebSockets
- Server-Sent Events
- Long Polling
SignalR väljer automatiskt den bästa transportmetoden som finns inom funktionerna för servern och klienten.
Hubs
SignalR använder hubbar för att kommunicera mellan klienter och servrar.
En hubb är en pipeline på hög nivå som gör att en klient och server kan anropa metoder på varandra. SignalR hanterar sändningen över datorgränserna automatiskt, vilket gör att klienter kan anropa metoder på servern och vice versa. Du kan skicka starkt skrivna parametrar till metoder som möjliggör modellbindning. SignalR innehåller två inbyggda hubbprotokoll: ett textprotokoll baserat på JSON och ett binärt protokoll baserat på MessagePack. MessagePack skapar vanligtvis mindre meddelanden jämfört med JSON. Äldre webbläsare måste ha stöd för XHR-nivå 2 för att kunna tillhandahålla stöd för MessagePack-protokollet.
Hubbar anropar kod på klientsidan genom att skicka meddelanden som innehåller namnet och parametrarna för metoden på klientsidan. Objekt som skickas som metodparametrar deserialiseras med hjälp av det konfigurerade protokollet. Klienten försöker matcha namnet med en metod i koden på klientsidan. När klienten hittar en matchning, anropar den metoden och skickar den deserialiserade parameterdatan till den.
Webbläsare som inte stöder ECMAScript 6 (ES6)
SignalR riktar sig mot ES6. För webbläsare som inte stöder ES6 överför du biblioteket till ES5. Mer information finns i Komma igång med ES6 – Transpiling ES6 till ES5 med Traceur och Babel.
Additional resources
ASP.NET Core