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 della funzionalità web in tempo reale per le app.ASP.NET Core SignalR is an open-source library that simplifies adding real-time web functionality to apps. Funzionalità web in tempo reale consente immediatamente il codice lato server push di contenuti ai client.Real-time web functionality enables server-side code to push content to clients instantly.

Buoni candidati per SignalR:Good candidates for SignalR:

  • App che richiedono aggiornamenti ad alta frequenza dal server.Apps that require high frequency updates from the server. Esempi sono di gioco, social network, voto, delle aste, mappe e App GPS.Examples are gaming, social networks, voting, auction, maps, and GPS apps.
  • I dashboard e App di monitoraggio.Dashboards and monitoring apps. Gli esempi includono dashboard aziendali, gli aggiornamenti di vendita immediati, o avvisi di comunicazione.Examples include company dashboards, instant sales updates, or travel alerts.
  • App di collaborazione.Collaborative apps. Le app di lavagna e riunione software del team sono esempi di App di collaborazione.Whiteboard apps and team meeting software are examples of collaborative apps.
  • App che richiedono le notifiche.Apps that require notifications. Social network, messaggio di posta elettronica, chat, giochi, gli avvisi di viaggi e molte altre App usare le notifiche.Social networks, email, chat, games, travel alerts, and many other apps use notifications.

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

Ecco alcune funzionalità di SignalR per ASP.NET Core:Here are some features of SignalR for ASP.NET Core:

  • Gestisce automaticamente la gestione della connessione.Handles connection management automatically.
  • Invia messaggi a tutti i client connessi contemporaneamente.Sends messages to all connected clients simultaneously. Ad esempio una chat room.For example, a chat room.
  • Invia messaggi al client specifici o gruppi di client.Sends messages to specific clients or groups of clients.
  • Scalabilità sufficiente a gestire il crescente traffico.Scales to handle increasing traffic.

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

TrasportiTransports

SignalR supporta diverse tecniche per la gestione delle comunicazioni in tempo reale:SignalR supports several techniques for handling real-time communications:

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

HubHubs

Usa SignalR 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 server chiamare i metodi a vicenda.A hub is a high-level pipeline that allows a client and server to call methods on each other. SignalR gestisce l'invio fra computer automaticamente, consentendo ai client di chiamare 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 per metodi, che consente l'associazione di modelli.You can pass strongly-typed parameters to methods, which enables model binding. SignalR fornisce due protocolli di hub predefinito: un protocollo di testo basati su JSON e un protocollo binario basato sul 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 i messaggi più piccoli rispetto a JSON.MessagePack generally creates smaller messages compared to JSON. Devono supportare i browser meno recenti livello XHR 2 per fornire supporto del protocollo MessagePack.Older browsers must support XHR level 2 to provide MessagePack protocol support.

Hub di chiamare codice lato client mediante l'invio di messaggi che contengono il nome e 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 di metodo vengono deserializzati tramite il protocollo configurato.Objects sent as method parameters are deserialized using the configured protocol. Il client cerca la corrispondenza con il nome a 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 i dati del parametro deserializzato.When the client finds a match, it calls the method and passes to it the deserialized parameter data.

Risorse aggiuntiveAdditional resources