Comunicazione real-time per applicazioni moderne
Cos'è SignalR e come aggiunge comunicazione in tempo reale alle tue app
Tutto quello che devi sapere su SignalR: la libreria Microsoft per notifiche push, chat e dashboard live nelle applicazioni .NET.
SignalR è la libreria di ASP.NET Core che rende semplice aggiungere comunicazione real-time alle tue applicazioni web.
Chat, notifiche push, dashboard live, collaborazione in tempo reale: tutto questo diventa possibile con poche righe di C#, senza dover gestire manualmente WebSocket, polling o Server-Sent Events.
SignalR sceglie automaticamente il miglior protocollo di trasporto disponibile: WebSocket quando possibile, con fallback a Long Polling o SSE. Tu scrivi il codice una volta, SignalR si adatta al client.
Come funziona SignalR: Hub, connessioni e gruppi
SignalR si basa sul concetto di Hub: un oggetto C# lato server che espone metodi invocabili dal client e viceversa.
Architettura di SignalR
| Concetto | Descrizione |
|---|---|
| Hub | Classe C# che definisce i metodi che client e server possono invocare reciprocamente. |
| Connessione | Ogni client ha un ConnectionId unico. SignalR gestisce automaticamente connessione/riconnessione. |
| Gruppi | Permette di inviare messaggi a sottoinsiemi di client (es. stanze di chat, canali tematici). |
| Trasporti | WebSocket → Server-Sent Events → Long Polling. Negoziazione automatica. |
| Protocolli | JSON (default) o MessagePack (binario, più veloce) per la serializzazione dei messaggi. |
// Esempio di Hub SignalR
public class ChatHub : Hub
{
public async Task SendMessage(string user, string message)
=> await Clients.All.SendAsync("ReceiveMessage", user, message);
}
Lato client, JavaScript, .NET o Java possono connettersi all'Hub e ricevere aggiornamenti in tempo reale.
Cosa puoi creare con SignalR
| Scenario | Descrizione |
|---|---|
| Chat e messaggistica | Chat room, messaggi diretti e sistemi di supporto live con feedback istantaneo. |
| Dashboard real-time | Monitoraggio di KPI, metriche di sistema e dati finanziari aggiornati al secondo. |
| Notifiche push | Avvisi istantanei per ordini, alert di sistema, aggiornamenti di stato. |
| Collaborazione live | Editing collaborativo, whiteboard condivise, aggiornamenti in tempo reale. |
| Gaming multiplayer | Sincronizzazione di stato tra giocatori con latenza minima. |
| IoT monitoring | Ricezione e visualizzazione di dati da sensori e dispositivi in tempo reale. |
Vantaggi di SignalR rispetto alle alternative
Zero configurazione di trasporto, SignalR negozia automaticamente il protocollo migliore. Non devi gestire WebSocket manualmente.
Scalabilità con backplane, Redis, Azure SignalR Service o SQL Server come backplane per distribuire messaggi su più server.
Integrazione nativa con ASP.NET Core, Dependency injection, autenticazione, autorizzazione: tutto funziona out-of-the-box.
Client multipli, SDK ufficiali per JavaScript, .NET, Java. Supporto per qualsiasi client WebSocket compatibile.
Azure SignalR Service, Servizio managed che gestisce milioni di connessioni senza infrastruttura da mantenere.
SignalR vs alternative real-time
| Caratteristica | SignalR | Socket.IO | Pusher | Firebase Realtime |
|---|---|---|---|---|
| Linguaggio server | C# / .NET | Node.js | Hosted | Hosted |
| Trasporti | WebSocket + fallback | WebSocket + polling | WebSocket | WebSocket |
| Integrazione .NET | Nativa | Richiede adapter | SDK generico | SDK generico |
| Scalabilità | Redis / Azure Service | Redis | Managed | Managed |
| Costo | Open-source | Open-source | A pagamento | Free tier limitato |
Inizia con SignalR: risorse e strumenti
Articoli correlati dal blog
Vuoi creare applicazioni real-time?
Padroneggia lo sviluppo web moderno
Con il nostro corso ASP.NET imparerai SignalR, Web API, Blazor e tutte le tecnologie per creare applicazioni web moderne e performanti.
Domande frequenti
SignalR è una libreria di ASP.NET Core per aggiungere comunicazione real-time alle applicazioni web. Permette al server di inviare aggiornamenti ai client in tempo reale per chat, notifiche e dashboard.
Sì, SignalR è incluso in ASP.NET Core ed è completamente open-source e gratuito. Azure SignalR Service offre un piano gratuito con limiti e piani a pagamento per alta scalabilità.
SignalR usa WebSocket come protocollo preferito, con fallback automatico a Server-Sent Events e Long Polling per garantire compatibilità con tutti i client.
Sì, SignalR si integra perfettamente con Blazor Server (lo usa internamente) e può essere usato anche in Blazor WebAssembly per comunicazione real-time bidirezionale.
Il modo migliore è seguire un percorso strutturato con progetti pratici. Il nostro corso ASP.NET include SignalR, Web API e tutte le tecnologie per applicazioni web moderne.