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.