Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Wat is SignalR?
ASP.NET Core SignalR is een opensource-bibliotheek die het toevoegen van realtime webfunctionaliteit aan apps vereenvoudigt. Met realtime webfunctionaliteit kan code aan de serverzijde direct inhoud naar clients pushen.
Goede kandidaten voor SignalR:
- Apps waarvoor updates met een hoge frequentie van de server zijn vereist. Voorbeelden zijn gaming, sociale netwerken, stemmen, veilingen, kaarten en GPS-apps.
- Dashboards en bewakingsapps. Voorbeelden hiervan zijn bedrijfsdashboards, directe verkoopupdates of reiswaarschuwingen.
- Collaborative apps. Whiteboard-apps en software voor teamvergaderingen zijn voorbeelden van samenwerkings-apps.
- Apps waarvoor meldingen zijn vereist. Sociale netwerken, e-mail, chat, games, reiswaarschuwingen en vele andere apps gebruiken meldingen.
SignalRbiedt een API voor het maken van externe procedureaanroepen van de server naar client (RPC). De RPC's roepen functies aan op clients vanuit .NET-code aan de serverzijde. Er zijn verschillende ondersteunde platforms, elk met hun respectieve client-SDK. Hierdoor varieert de programmeertaal die wordt aangeroepen door de RPC-aanroep.
Hier volgen enkele functies voor SignalR ASP.NET Core:
- Verwerkt verbindingsbeheer automatisch.
- Hiermee worden berichten tegelijk verzonden naar alle verbonden clients. Bijvoorbeeld een chatruimte.
- Hiermee worden berichten verzonden naar specifieke clients of groepen clients.
- Schaalt om het toenemende verkeer te verwerken.
- SignalR HubProtocol
De bron wordt gehost in een SignalR opslagplaats op GitHub.
Transports
SignalR ondersteunt de volgende technieken voor het verwerken van realtime communicatie (in volgorde van geleidelijke terugval):
- WebSockets
- Server-Sent Events
- Long Polling
SignalR kiest automatisch de beste transportmethode die zich binnen de mogelijkheden van de server en client bevindt.
Hubs
SignalR maakt gebruik van hubs om te communiceren tussen clients en servers.
Een hub is een pijplijn op hoog niveau waarmee een client en server methoden op elkaar kunnen aanroepen. SignalR verwerkt de verzending automatisch over de grenzen van computers, zodat clients methoden op de server kunnen aanroepen en omgekeerd. U kunt sterk getypte parameters doorgeven aan methoden, waardoor modelbinding mogelijk is. SignalR biedt twee ingebouwde hubprotocollen: een tekstprotocol op basis van JSON en een binair protocol op basis van MessagePack. MessagePack maakt doorgaans kleinere berichten in vergelijking met JSON. Oudere browsers moeten XHR-niveau 2 ondersteunen om ondersteuning te bieden voor het MessagePack-protocol.
Hubs roepen code aan clientzijde aan door berichten te verzenden die de naam en parameters van de methode aan de clientzijde bevatten. Objecten die als methodeparameters worden verzonden, worden gedeserialiseerd met behulp van het geconfigureerde protocol. De client probeert de naam te koppelen aan een methode in de code aan de clientzijde. Wanneer de klant een overeenkomst vindt, roept deze de methode aan en geeft daarbij de gedeserialiseerde parametergegevens door.
Browsers die geen ondersteuning bieden voor ECMAScript 6 (ES6)
SignalR is gericht op ES6. Voor browsers die ES6 niet ondersteunen, transpileert u de bibliotheek naar ES5. Zie Aan de slag met ES6 – ES6 transpileren naar ES5 met Traceur en Babelvoor meer informatie.