Introduzione a ASP.NET Core SignalRIntroduction to ASP.NET Core SignalR

Che cos'è SignalR ?What is SignalR?

ASP.NET Core SignalR è una libreria open source che semplifica l'aggiunta di funzionalità Web in tempo reale alle app.ASP.NET Core SignalR is an open-source library that simplifies adding real-time web functionality to apps. La funzionalità Web in tempo reale consente di eseguire il push del contenuto ai client immediatamente dal codice lato server.Real-time web functionality enables server-side code to push content to clients instantly.

Candidati validi per SignalR :Good candidates for SignalR:

  • App che richiedono aggiornamenti con frequenza elevata dal server,Apps that require high frequency updates from the server. ad esempio giochi, social network, mappe, aste e app GPS e di voto.Examples are gaming, social networks, voting, auction, maps, and GPS apps.
  • Dashboard e app di monitoraggio,Dashboards and monitoring apps. ad esempio dashboard aziendali, aggiornamenti di vendite istantanee o avvisi di viaggio.Examples include company dashboards, instant sales updates, or travel alerts.
  • App di collaborazione,Collaborative apps. ad esempio app per lavagne e software per riunioni in team.Whiteboard apps and team meeting software are examples of collaborative apps.
  • App che richiedono notifiche.Apps that require notifications. Social network, posta elettronica, chat, giochi, avvisi di viaggio e molte altre app usano le notifiche.Social networks, email, chat, games, travel alerts, and many other apps use notifications.

SignalR fornisce un'API per la creazione di chiamate a procedure remote (RPC)da server a client.SignalR provides an API for creating server-to-client remote procedure calls (RPC). Le chiamate RPC chiamano funzioni JavaScript nei client dal codice .NET Core lato server.The RPCs call JavaScript functions on clients from server-side .NET Core code.

Di seguito sono riportate alcune funzionalità di SignalR per ASP.NET Core:Here are some features of SignalR for ASP.NET Core:

  • Gestisce automaticamente la gestione delle connessioni.Handles connection management automatically.
  • Invia messaggi contemporaneamente a tutti i client connessi.Sends messages to all connected clients simultaneously. Ad esempio, una chat room.For example, a chat room.
  • Invia messaggi a client o gruppi di client specifici.Sends messages to specific clients or groups of clients.
  • Ridimensiona per gestire l'aumento del traffico.Scales to handle increasing traffic.

L'origine è ospitata in un SignalR repository in GitHub.The source is hosted in a SignalR repository on GitHub.

TrasportiTransports

SignalR supporta le tecniche seguenti per la gestione della comunicazione in tempo reale (in ordine di fallback normale):SignalR supports the following techniques for handling real-time communication (in order of graceful fallback):

  • WebSocketWebSockets
  • Eventi inviati dal serverServer-Sent Events
  • Polling prolungatoLong Polling

SignalR sceglie automaticamente il metodo di trasporto migliore all'interno delle funzionalità del server e del client.SignalR automatically chooses the best transport method that is within the capabilities of the server and client.

HubHubs

SignalR USA gli Hub per la comunicazione tra client e server.SignalR uses hubs to communicate between clients and servers.

Un hub è una pipeline di alto livello che consente a un client e a un server di chiamare i metodi tra loro.A hub is a high-level pipeline that allows a client and server to call methods on each other. SignalR gestisce automaticamente l'invio tra i limiti del computer, consentendo ai client di chiamare i metodi sul server e viceversa.SignalR handles the dispatching across machine boundaries automatically, allowing clients to call methods on the server and vice versa. È possibile passare parametri fortemente tipizzati ai metodi, che Abilita l'associazione di modelli.You can pass strongly-typed parameters to methods, which enables model binding. SignalR in sono disponibili due protocolli Hub predefiniti: un protocollo di testo basato su JSON e un protocollo binario basato su MessagePack.SignalR provides two built-in hub protocols: a text protocol based on JSON and a binary protocol based on MessagePack. MessagePack crea in genere messaggi più piccoli rispetto a JSON.MessagePack generally creates smaller messages compared to JSON. I browser meno recenti devono supportare il livello XHR 2 per fornire il supporto del protocollo MessagePack.Older browsers must support XHR level 2 to provide MessagePack protocol support.

Gli hub chiamano il codice lato client inviando messaggi che contengono il nome e i parametri del metodo lato client.Hubs call client-side code by sending messages that contain the name and parameters of the client-side method. Gli oggetti inviati come parametri del metodo vengono deserializzati utilizzando il protocollo configurato.Objects sent as method parameters are deserialized using the configured protocol. Il client tenta di trovare una corrispondenza tra il nome e un metodo nel codice lato client.The client tries to match the name to a method in the client-side code. Quando il client trova una corrispondenza, chiama il metodo e passa ai dati dei parametri deserializzati.When the client finds a match, it calls the method and passes to it the deserialized parameter data.

Risorse aggiuntiveAdditional resources