Pusher — cos'è, piattaforma in tempo reale e integrazione nelle app

Autore: IT Sectr Pubblicato: 2026-06-01 Tempo di lettura: 8 min

Pusher: servizio ospitato per comunicazione bidirezionale in tempo reale, che fornisce infrastruttura per canali, eventi e notifiche webhook. Solleva lo sviluppatore dalla necessità di implementare un proprio server WebSocket e garantisce la consegna dei messaggi a milioni di dispositivi. Secondo la documentazione ufficiale di Pusher (2025), il servizio elabora oltre 40 miliardi di messaggi al mese in tutto il mondo.

Punti chiave

  • Pusher — servizio cloud per messaggi in tempo reale che non richiede gestione del server proprio.
  • Canali ed eventi — la pubblicazione dei messaggi avviene tramite canali nominati che supportano i tipi: public, private, presence.
  • Trasporto WebSocket — i client si connettono tramite WebSocket con fallback su HTTP polling.
  • Integrazione Webhook — gli eventi del server vengono consegnati al tuo backend tramite hook HTTP.
  • SDK per tutte le piattaforme — client pronti per JavaScript, iOS, Android, React Native e linguaggi lato server.

Cos'è Pusher?

Pusher è un servizio cloud per comunicazione bidirezionale in tempo reale, fondato nel 2011. Fornisce infrastruttura pronta per inviare e ricevere messaggi in tempo reale senza dover gestire un proprio server WebSocket. Pusher viene utilizzato per costruire chat, notifiche live, editing collaborativo e classifiche di gioco.

A differenza di librerie come Socket.IO, che richiedono l'implementazione e la manutenzione di un proprio server, Pusher opera secondo un modello SaaS (Software as a Service). Lo sviluppatore si registra, ottiene chiavi (app_id, key, secret) e utilizza l'API REST di Pusher per pubblicare eventi. L'infrastruttura del server è completamente gestita dalla piattaforma Pusher.

Secondo il blog ufficiale di Pusher (2025), la piattaforma serve oltre 250.000 progetti attivi in tutto il mondo. Tra i clienti più noti ci sono GitHub (notifiche in tempo reale), Trello (sincronizzazione bacheche) e Intercom (chat di supporto). Pusher supporta data center negli Stati Uniti, Europa e Asia per ridurre al minimo la latenza.

Storia dello sviluppo di Pusher

Pusher è stato lanciato nel 2011 come uno dei primi servizi ospitati per WebSocket. Nel 2014, l'azienda ha presentato Pusher Channels — l'architettura attuale con supporto per canali private e presence. Nel 2017 è stato aggiunto il supporto webhook per eventi lato server. Nel 2022, Pusher ha lanciato Pusher Beams, un servizio di notifiche push per piattaforme mobili.

L'architettura di Pusher si differenzia dalle soluzioni self-hosted perché tutta la gestione degli abbonamenti, la gestione delle connessioni e il routing degli eventi avvengono sul lato di Pusher Cloud. Lo sviluppatore gestisce solo l'autenticazione dei canali private tramite il proprio backend.

Come funziona Pusher

L'architettura di Pusher si basa sul modello Publisher-Subscriber. Le applicazioni server pubblicano eventi tramite l'API REST di Pusher, e le applicazioni client li ricevono tramite una connessione WebSocket persistente. Pusher funge da intermediario tra editori e abbonati.

Quando il server invia un evento tramite una richiesta POST all'API di Pusher, la piattaforma determina il canale target e distribuisce il messaggio a tutti i client iscritti a quel canale. I client ricevono l'evento tramite una connessione WebSocket già aperta, offrendo una latenza di 50–100 ms a seconda della posizione geografica.

Ogni client stabilisce una connessione tramite Pusher Client SDK, che seleziona automaticamente il trasporto (WebSocket — priorità, HTTP long-polling — fallback). L'SDK gestisce la riconnessione, la serializzazione dei dati e la gestione degli errori senza intervento dello sviluppatore. Secondo la documentazione tecnica di Pusher (2025), il tempo di riconnessione dopo un'interruzione di rete è inferiore a 1 secondo.

Componenti di Pusher

Il sistema è composto da tre componenti: Pusher Server API (endpoint REST per pubblicare eventi), Pusher Client SDK (librerie per abbonarsi agli eventi) e Pusher WebHook (notifiche al server su eventi di connessione/disconnessione). Tutti i componenti funzionano in modo asincrono e indipendente.

Tipi di canali Pusher

Pusher Channels supporta tre tipi di canali, ciascuno progettato per diversi casi d'uso. Il tipo di canale determina il livello di accesso, il meccanismo di autenticazione e le capacità disponibili.

Tipo di canalePrefissoAutenticazioneUtilizzo
Publicchannel-Non richiestaDati pubblici: tassi di cambio, meteo, feed notizie
Privateprivate-Firma richiesta sul serverNotifiche personali, chat, dati utente
Presencepresence-Firma + informazioni utenteStato online, stanze di gioco, editing collaborativo

I canali Public sono disponibili per tutti i client senza autenticazione e sono adatti per dati in broadcast. I canali Private richiedono l'autenticazione tramite il server dello sviluppatore: il client invia una richiesta al proprio backend con socket_id e channel_name, il server firma la richiesta con la chiave segreta Pusher e restituisce un token di autenticazione. I canali Presence trasmettono inoltre informazioni sull'utente (user_id, user_info) e consentono di tracciare chi è attualmente online.

Secondo la documentazione Pusher (2025), il numero massimo di client connessi simultaneamente per canale è 10.000 per i canali public e private. Per i canali presence, il limite è di 10.000 utenti per canale con supporto fino a 100.000 utenti per applicazione.

Eventi e trigger Pusher

Il modello di eventi Pusher si basa su eventi nominati pubblicati in un canale. Ogni evento ha un nome (massimo 200 caratteri), dati in formato JSON e un socket_id opzionale per evitare l'invio duplicato all'iniziatore dell'evento.

I trigger sono richieste HTTP POST all'API Pusher che pubblicano un evento in un canale. Formato richiesta: POST /apps/{app_id}/events con un body contenente channel, name e data. L'API server Pusher supporta trigger da qualsiasi ambiente server tramite librerie ufficiali (PHP, Ruby, Python, Go, Java, Node.js).

Pusher supporta trigger batch — pubblicazione di un evento in più canali con una singola richiesta. Questo è più efficiente delle chiamate sequenziali e garantisce una consegna atomica. Secondo i test di performance Pusher (2024), un trigger batch su 100 canali impiega 30–50 ms, mentre le chiamate sequenziali impiegano 2–5 secondi.

Integrazione Webhook

Pusher WebHook consente al tuo server di ricevere notifiche sugli eventi dell'infrastruttura: connessione client, disconnessione, occorrenza di errore. Le richieste Webhook sono firmate con HMAC-SHA256 per la verifica. Questo è fondamentale per logging, analisi e sincronizzazione dello stato.

Come integrare Pusher in un progetto

L'integrazione di Pusher si compone di due parti: lato server (pubblicazione eventi) e lato client (abbonamento agli eventi). Vediamo un esempio usando Node.js per la parte server e JavaScript per la parte client. Innanzitutto, devi creare un'applicazione nella dashboard di Pusher e ottenere le credenziali.

Secondo la documentazione Pusher (2025), il piano base (Sandbox) include fino a 100 connessioni simultanee e 200.000 messaggi al giorno — sufficiente per sviluppo e test. I piani di produzione partono da $49 al mese per 1000 connessioni.

Codice server: pubblicazione di un evento

js
const Pusher = require('pusher');

const pusher = new Pusher({
    appId: 'YOUR_APP_ID',
    key: 'YOUR_KEY',
    secret: 'YOUR_SECRET',
    cluster: 'eu',
    useTLS: true
});

pusher.trigger('my-channel', 'my-event', {
    message: 'Hello from server',
    timestamp: Date.now()
}).then(() => {
    console.log('Evento pubblicato');
}).catch(console.error);

Codice client: abbonamento agli eventi

js
import Pusher from 'pusher-js';

const pusher = new Pusher('YOUR_KEY', {
    cluster: 'eu',
    forceTLS: true
});

const channel = pusher.subscribe('my-channel');

channel.bind('my-event', (data) => {
    console.log('Evento ricevuto:', data);
    displayNotification(data.message);
});

Pusher nelle app mobili

Pusher fornisce SDK per iOS (Swift) e Android (Java/Kotlin) che replicano completamente la funzionalità del client JavaScript. Gli SDK mobili supportano gli stessi tipi di canale, meccanismo di autenticazione e modello di eventi. Per React Native, è disponibile il pacchetto pusher-js, che funziona tramite il bridge JavaScript.

Sui dispositivi mobili, l'SDK Pusher gestisce automaticamente il passaggio tra Wi-Fi e reti mobili utilizzando un meccanismo di riconnessione con backoff esponenziale. Questo è particolarmente importante per le app iOS, dove iOS può chiudere forzatamente le connessioni WebSocket durante il funzionamento in background.

Secondo il blog tecnico Pusher (2024), il consumo medio di traffico di una connessione Pusher è di 1–2 KB al minuto in assenza di eventi attivi. Ciò è ottenuto tramite un protocollo heartbeat ottimizzato con intervallo di 30 secondi. Un'applicazione di medie dimensioni può supportare fino a 1000 connessioni Pusher simultanee senza influire significativamente sulla durata della batteria.

Pusher Beams per notifiche push

Pusher Beams è un servizio aggiuntivo per inviare notifiche push a dispositivi mobili tramite APNs (iOS) e FCM (Android). Beams si integra con Pusher Channels: un evento da un canale può attivare automaticamente una notifica push se il client è offline. Questo risolve il problema della consegna dei messaggi quando l'app è chiusa.

Sicurezza e autenticazione Pusher

La sicurezza Pusher è implementata a più livelli. Ogni richiesta all'API Pusher viene firmata con HMAC-SHA256 utilizzando app_secret. Ciò garantisce che solo un server autorizzato possa pubblicare eventi. Gli SDK client utilizzano app_key per l'identificazione dell'applicazione, ma l'accesso ai canali private e presence richiede autenticazione aggiuntiva.

L'autenticazione dei canali private avviene in tre passaggi: il client chiama pusher.subscribe('private-channel'), il Pusher Client SDK invia una richiesta HTTP al tuo endpoint backend (/pusher/auth), il server verifica i permessi dell'utente e restituisce un token di autenticazione firmato con la chiave segreta. Pusher verifica la firma e consente l'abbonamento.

Si consiglia di utilizzare connessioni TLS per tutte le richieste (impostazione useTLS: true nell'SDK). Pusher supporta anche restrizioni di accesso per indirizzo IP per richieste server all'API REST. Per i piani enterprise, è disponibile il supporto per VPC (Virtual Private Cloud) e cluster dedicati con infrastruttura isolata.

Domande frequenti

In cosa Pusher è diverso da Socket.IO?

Pusher è un servizio ospitato (SaaS) che non richiede gestione del server. Socket.IO è una libreria che devi implementare da solo. Pusher è più facile da configurare ma più costoso da scalare, Socket.IO richiede lavoro DevOps ma è più economico su grandi volumi.

Quanto costa Pusher?

Il piano gratuito Sandbox include 100 connessioni e 200.000 messaggi al giorno. I piani di produzione partono da $49/mese (1000 connessioni, messaggi illimitati) fino a enterprise con condizioni personalizzate.

Come garantisce Pusher la consegna dei messaggi?

Pusher utilizza WebSocket con fallback automatico su HTTP long-polling. Per i messaggi critici, è disponibile una coda lato Pusher con garanzia di consegna almeno una volta (at-least-once).

Pusher può essere usato in Russia?

Sì, Pusher è disponibile dalla Russia tramite il cluster europeo (eu). La latenza è di 50–100 ms per i data center europei. Per progetti con requisiti di localizzazione dei dati, si consiglia di considerare alternative.

Quali alternative a Pusher esistono?

I principali concorrenti sono Ably (funzionalità simile, prezzi più flessibili), PubNub (rete di consegna globale), Socket.IO (self-hosted) e Firebase Realtime Database (ecosistema Google).

Riepilogo

  • Pusher — un servizio SaaS cloud per messaggi in tempo reale che non richiede la gestione della propria infrastruttura server.
  • Tre tipi di canali — public (senza autenticazione), private (con firma) e presence (con tracciamento utenti) — coprono tutti gli scenari.
  • Modello di eventi basato su eventi nominati con payload JSON, pubblicati tramite API REST.
  • SDK mobili per iOS e Android supportano riconnessione automatica e consumo di traffico ottimizzato.
  • Sicurezza garantita da firma HMAC delle richieste, crittografia TLS e autenticazione dei canali private tramite backend.
  • Pusher Beams aggiunge notifiche push per la consegna offline tramite APNs e FCM.
  • Per progetti piccoli con avvio rapido, Pusher è ottimale; per un gran numero di connessioni, Socket.IO self-hosted è più economico.

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche