Introduzione alla ASP.NET Core SignalR

Che cos'è SignalR?

SignalRASP.NET Core è una libreria open source che semplifica l'aggiunta di funzionalità Web in tempo reale alle app. La funzionalità Web in tempo reale consente al codice lato server di eseguire immediatamente il push del contenuto ai client.

Buoni candidati per SignalR :

  • App che richiedono aggiornamenti con frequenza elevata dal server, ad esempio giochi, social network, mappe, aste e app GPS e di voto.
  • Dashboard e app di monitoraggio, ad esempio dashboard aziendali, aggiornamenti di vendite istantanee o avvisi di viaggio.
  • App di collaborazione, ad esempio app per lavagne e software per riunioni in team.
  • App che richiedono notifiche. Social network, posta elettronica, chat, giochi, avvisi di viaggio e molte altre app usano le notifiche.

SignalRfornisce un'API per la creazione di chiamate di procedura remota da server a client (RPC). Le RPC richiamano funzioni nei client dal codice .NET Core lato server. Sono disponibili diverse piattaforme supportate,ognuna con il rispettivo SDK client. Per questo, il linguaggio di programmazione richiamato dalla chiamata RPC varia.

Ecco alcune funzionalità di SignalR per ASP.NET Core:

  • Gestisce automaticamente la gestione delle connessioni.
  • Invia messaggi a tutti i client connessi contemporaneamente. Ad esempio, una chat room.
  • Invia messaggi a client o gruppi di client specifici.
  • Ridimensiona per gestire l'aumento del traffico.

L'origine è ospitata in un SignalR repository in GitHub.

Trasporti

SignalR supporta le tecniche seguenti per la gestione delle comunicazioni in tempo reale (in ordine di fallback corretto):

SignalR sceglie automaticamente il metodo di trasporto migliore che rientra nelle funzionalità del server e del client.

Hub

SignalR usa gli hub per comunicare tra client e server.

Un hub è una pipeline di alto livello che consente a un client e a un server di chiamare metodi l'uno sull'altro. SignalR gestisce automaticamente l'invio attraverso i limiti del computer, consentendo ai client di chiamare metodi sul server e viceversa. È possibile passare parametri fortemente tipizzato ai metodi , che abilitano l'associazione di modelli. SignalRfornisce due protocolli hub predefiniti: un protocollo di testo basato su JSON e un protocollo binario basato su MessagePack. MessagePack crea in genere messaggi più piccoli rispetto a JSON. I browser meno recenti devono supportare il livello XHR 2 per fornire il supporto del protocollo MessagePack.

Gli hub chiamano il codice lato client inviando messaggi che contengono il nome e i parametri del metodo sul lato client. Gli oggetti inviati come parametri del metodo vengono deserializzati usando il protocollo configurato. Il client tenta di associare il nome a un metodo nel codice sul lato client. Quando il client trova una corrispondenza, chiama il metodo e gli passa i dati dei parametri deserializzati.

Risorse aggiuntive