Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
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. Er zijn veel scenario's waarin een ASP.NET Core toepassing kan profiteren van SignalR:
| Scenario | Voorbeelden |
|---|---|
| Toepassingen waarvoor updates met een hoge frequentie van de server zijn vereist | Gaming, Sociale netwerken, Stemsites, Veilingen, Kaarten, GPS |
| Dashboards en apps voor bewaking | Bedrijfsdashboards, directe verkoopupdates, reiswaarschuwingen |
| Apps die ondersteuning bieden voor samenwerking | Whiteboard-apps, software voor teamvergaderingen |
| Apps waarvoor meldingen zijn vereist | Sociale netwerken, e-mail, chat, games, reiswaarschuwingen |
Dit artikel bevat een inleiding tot het werken met SignalR in uw ASP.NET Core-apps.
Mogelijkheden en broncode
SignalRbiedt een API voor het maken van externe procedureaanroepen van de server naar client (RPC). De RPCs roepen functies aan op clients vanuit .NET-code aan de serverkant. Er zijn verschillende ondersteunde platforms, elk met hun respectieve client-SDK. De programmeertaal die wordt aangeroepen door de RPC-aanroep, varieert op basis van het platform.
SignalR voor ASP.NET Core biedt ontwikkelaars veel functies:
- Verbindingsbeheer automatisch afhandelen
- Berichten tegelijk verzenden naar alle verbonden clients (bijvoorbeeld een chatruimte)
- Berichten verzenden naar specifieke cliënten of groepen cliënten
- Schaal om het toenemende verkeer te verwerken met opties zoals de Azure SignalR Service en Redis backplane
- Ondersteunt trimming en native ahead-of-time-compilatie (AOT) voor ondersteunde scenario's
- Ondersteuning voor polymorfe typeafhandeling in hubmethoden
- Ondersteuning voor gedistribueerde tracering met
ActivitySourcevoor SignalR hubserver en .NET-client - Werken met het SignalR Hub-protocol
De bron wordt gehost in de opslagplaats ASP.NET Core SignalR op GitHub.
Transports
SignalR ondersteunt de volgende technieken voor het verwerken van realtime communicatie (in volgorde van geleidelijke terugval):
- WebSockets
- Door de server verzonden gebeurtenissen
- Long polling
SignalR kiest automatisch de beste transportmethode binnen de mogelijkheden van de server en client. WebSockets is het voorkeurstransport omdat het over het algemeen de beste prestaties biedt.
Hubs
SignalR maakt gebruik van hubs om te communiceren tussen clients en servers.
Een hub is een pijplijn op hoog niveau die een client en server gebruiken om methoden op elkaar aan te roepen. 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 en modelbinding inschakelen.
SignalR ondersteunt twee ingebouwde hubprotocollen:
- Een tekstprotocol op basis van JSON (standaard)
- Een binair protocol op basis van MessagePack. MessagePack maakt doorgaans kleinere berichten in vergelijking met JSON. Zie Use MessagePack Hub Protocol in SignalR voor ASP.NET Core voor meer informatie.
Hubs roepen code aan clientzijde aan door berichten te verzenden die de naam en parameters van de methode aan de clientzijde bevatten. Het geconfigureerde protocol ontserialiseerde objecten die als methodeparameters worden verzonden. De client probeert de naam te koppelen aan een methode in de code aan de clientzijde. Wanneer de client een overeenkomst vindt, wordt de methode aangeroepen en worden de gedeserialiseerde parametergegevens doorgegeven.
Verwante inhoud
- Aan de slag met ASP.NET Core-SignalR
- ondersteunde platforms voor ASP.NET Core SignalR
- Hubs gebruiken in ASP.NET Core SignalR
- Logboeken en diagnostische gegevens in ASP.NET Core SignalR
- ASP.NET Core SignalR productiehosting en schaalbaarheid
- ASP.NET Core SignalR JavaScript-client
- ASP.NET Core BlazorSignalR handleiding
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.
- Samenwerkings-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 RPCs roepen functies aan op clients vanuit .NET-code aan de serverkant. 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 van SignalR voor 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.
- Hiermee kunt u het toenemende verkeer verwerken met opties zoals de Azure SignalR Service en Redis backplane.
- Biedt ondersteuning voor trimming en systeemeigen AOT-compilatie voor ondersteunde scenario's.
- Ondersteunt het verwerken van polymorfe typen in hubmethoden.
- Ondersteunt gedistribueerde tracering met
ActivitySourcevoor SignalR hubserver en .NET-client. - 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-verzonden gebeurtenissen
- "Lange polling"
SignalR kiest automatisch de beste transportmethode die zich binnen de mogelijkheden van de server en client bevindt. WebSockets is het voorkeurstransport omdat het over het algemeen de beste prestaties biedt.
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 ondersteunt twee ingebouwde hubprotocollen: een tekstprotocol op basis van JSON (standaard) en een binair protocol op basis van MessagePack. MessagePack maakt doorgaans kleinere berichten in vergelijking met JSON. Zie Use MessagePack Hub Protocol in SignalR voor ASP.NET Core voor meer informatie.
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.
Aanvullende bronnen
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.
- Samenwerkings-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 RPCs roepen functies aan op clients vanuit .NET-code aan de serverkant. 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 van SignalR voor 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-verzonden gebeurtenissen
- "Lange 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.
Aanvullende bronnen
ASP.NET Core