PubNub — cos'è, SDK in tempo reale e come funziona nelle applicazioni

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

PubNub è una rete globale per la messaggistica in tempo reale che fornisce infrastruttura per pubblicare e sottoscrivere messaggi tramite WebSocket con latenza minima. È progettata per applicazioni che richiedono consegna affidabile dei dati sotto carico elevato e connessioni instabili. Secondo la documentazione ufficiale di PubNub (2025), la piattaforma elabora oltre 1 trilione di messaggi al mese per più di 70.000 applicazioni in tutto il mondo.

Punti chiave

  • PubNub è una rete globale per messaggi in tempo reale con oltre 15 data center e consegna garantita.
  • Pub/Sub con chiavi — pubblicazione e sottoscrizione tramite chiavi publish/subscribe con separazione dei diritti di accesso.
  • Stream Controller — gestione del flusso di messaggi con supporto per filtraggio, trasformazione e buffering.
  • Presence — tracciamento dello stato online dei partecipanti al canale con rilevamento del timeout.
  • SDK per oltre 75 piattaforme — il più grande ecosistema di librerie client tra i servizi in tempo reale.

Cos'è PubNub?

PubNub è una rete globale di dati in tempo reale, fondata nel 2010. Fornisce un'API per pubblicare e sottoscrivere messaggi, oltre a servizi aggiuntivi: archiviazione della cronologia, gestione della presenza, funzioni serverless (PubNub Functions) e analisi dei flussi di dati.

L'architettura di PubNub si basa su una rete distribuita di punti di presenza (POP) situati in oltre 15 regioni geografiche. Ogni punto contiene broker di caching che instradano i messaggi tra editori e sottoscrittori con latenza minima. PubNub non utilizza un singolo broker centrale — ogni regione opera indipendentemente e si sincronizza tramite la rete globale.

Secondo il sito web ufficiale di PubNub (2025), la piattaforma serve oltre 70.000 applicazioni in più di 200 paesi. Tra i clienti chiave figurano Logitech (gestione dispositivi IoT), GoPro (streaming video in tempo reale), eBay (sincronizzazione aste) e Snapchat (chat e notifiche).

Principi chiave di PubNub

PubNub è costruita su tre principi: velocità (latenza inferiore a 10 ms al 95° percentile all'interno di una singola regione), affidabilità (garanzia di consegna at-least-once con nuovo tentativo automatico) e scalabilità (espansione orizzontale senza limite sul numero di canali). La piattaforma non memorizza i messaggi in archiviazione a lungo termine — la cronologia è disponibile tramite un servizio Storage & Playback collegato separatamente.

Come funziona PubNub

Il modello operativo di PubNub si basa sul classico pattern publish-subscribe. Il client editore invia un messaggio specificando il canale tramite l'API REST di PubNub con una chiave di pubblicazione. PubNub consegna il messaggio a tutti i sottoscrittori di quel canale attraverso le loro connessioni WebSocket attive. I sottoscrittori ricevono il messaggio tramite un gestore di callback registrato nell'SDK di PubNub.

Il livello di trasporto di PubNub utilizza WebSocket come protocollo principale, con fallback su HTTP long-polling per ambienti con restrizioni. L'SDK gestisce automaticamente la connessione: stabilisce, mantiene il heartbeat (ogni 15–60 secondi a seconda della rete) e si riconnette in caso di interruzione.

Ogni messaggio in PubNub contiene metadati: UUID del mittente, timestamp, numero di sequenza (timetoken) e flag (store, replicate, eatAfterRead). Timetoken è un identificatore univoco di PubNub basato sul tempo che garantisce l'ordine globale dei messaggi all'interno di un canale. Secondo la documentazione di PubNub (2025), il timetoken ha una risoluzione di 10 nanosecondi.

Flusso del messaggio

Quando un client pubblica un messaggio, passa attraverso lo Stream Controller — il modulo di instradamento di PubNub. Lo Stream Controller verifica i diritti di accesso (PAM), applica le regole di trasformazione (PubNub Functions), determina le regioni di destinazione e invia il messaggio a tutti i sottoscrittori. Se un sottoscrittore è offline, il messaggio viene bufferizzato per 30 secondi (impostazione predefinita) in attesa del ripristino della connessione.

Chiavi PubNub: publish, subscribe, secret

Il sistema di chiavi di PubNub separa i diritti di accesso in tre livelli: chiave di pubblicazione (solo pubblicazione), chiave di sottoscrizione (solo sottoscrizione) e chiave segreta (amministrazione). Ogni applicazione riceve un set di tre chiavi al momento della registrazione, ma la chiave segreta non viene mai trasmessa al client — viene utilizzata solo lato server.

La chiave di pubblicazione viene utilizzata per inviare messaggi ai canali. La chiave di sottoscrizione viene utilizzata per sottoscrivere canali e ricevere messaggi. La chiave segreta viene utilizzata per la gestione degli accessi tramite PubNub Access Manager (PAM), la creazione di token di pubblico temporanei e la gestione delle chiavi. La chiave segreta è conservata in sicurezza sul server e non viene mai rivelata ai client.

PubNub supporta diverse modalità di autenticazione: per indirizzo IP (per server), per chiave segreta (per operazioni amministrative), per token temporanei (per client). I token temporanei vengono emessi tramite PAM con restrizioni su tempo di scadenza, canali e permessi (read, write, manage).

Canali PubNub

I canali PubNub sono percorsi di messaggi denominati. Il nome di un canale è una stringa fino a 92 caratteri, che supporta lettere latine, cifre, trattini e trattini bassi. I canali vengono creati dinamicamente alla prima pubblicazione o sottoscrizione. PubNub supporta pattern di canale tramite il carattere * nelle richieste di sottoscrizione — questo consente di sottoscrivere un gruppo di canali (ad esempio, user-*).

Channel Groups è un meccanismo di raggruppamento di canali per la sottoscrizione di massa. Invece di sottoscrivere 50 canali individuali, il client sottoscrive un gruppo e tutti i messaggi dei canali in esso contenuti vengono automaticamente consegnati al client. Channel Groups supporta l'annidamento, ma la profondità non deve superare i 3 livelli.

Secondo la documentazione tecnica di PubNub (2025), il numero massimo di sottoscrittori per canale è di 50.000. Per carichi più elevati, si raccomanda di utilizzare canali con prefissi e frammentare il pubblico (ad esempio, chat-room-001, chat-room-002). Channel Groups può anche essere organizzato secondo principi geografici o tematici.

ParametroMassimoNota
Lunghezza nome canale92 caratteriLettere latine, cifre, -, _
Sottoscrittori per canale50.000Superiore — frammentare
Channel Groups2000 gruppi / chiaveFino a 500 canali per gruppo
Cronologia (archiviazione)IllimitatoPagamento per volume di archiviazione

Come usare PubNub in un progetto

L'integrazione di PubNub richiede registrazione, creazione di un'applicazione nel pannello di amministrazione e ottenimento di un set di chiavi. Le librerie PubNub sono disponibili per JavaScript, Swift, Kotlin, Java, Dart (Flutter), C#, Python, Ruby, Go e molti altri linguaggi. Vediamo un esempio in JavaScript per browser e Node.js.

Secondo la documentazione di PubNub (2025), la libreria pubnub-js supporta sia l'import CommonJS che ES Module. Per il browser, si consiglia di utilizzare la build npm seguita dal bundling tramite webpack o Vite.

Sottoscrivere un canale

js
import PubNub from 'pubnub';

const pubnub = new PubNub({
    publishKey: 'PUBLISH_KEY',
    subscribeKey: 'SUBSCRIBE_KEY',
    userId: 'user-100'
});

pubnub.subscribe({
    channels: ['chat-general']
});

pubnub.addListener({
    message: (event) => {
        console.log('Nuovo messaggio:', event.message);
    },
    presence: (event) => {
        console.log('Presenza:', event.uuid, event.action);
    }
});

pubnub.publish({
    channel: 'chat-general',
    message: { text: 'Hello everyone!', sender: 'user-100' }
});

Ottenere la cronologia dei messaggi

js
pubnub.fetchMessages(
    { channels: ['chat-general'], count: 50 },
    (status, response) => {
        if (status.error) {
            console.error('Errore nel recupero della cronologia', status);
            return;
        }
        const messages = response.channels['chat-general'];
        messages.forEach((msg) => {
            console.log(msg.message, msg.timetoken);
        });
    }
);

PubNub Functions e Stream Controller

PubNub Functions è una piattaforma serverless per elaborare i messaggi lato PubNub. Le funzioni sono scritte in JavaScript ed eseguite in un ambiente isolato sicuro (V8 isolate). Possono trasformare, filtrare, bufferizzare e reindirizzare i messaggi prima che vengano consegnati ai sottoscrittori.

Stream Controller è un meccanismo di instradamento integrato che gestisce il flusso di messaggi basato su regole. Le regole determinano quali messaggi vengono consegnati, quali vengono scartati e quali vengono inviati a PubNub Functions per l'elaborazione. Stream Controller supporta l'instradamento condizionale per contenuto del messaggio, tipo di canale o metadati.

Secondo il blog di PubNub (2024), PubNub Functions riduce i costi dell'infrastruttura server per l'elaborazione dei messaggi del 40–60% scaricando la logica di filtraggio e trasformazione sui nodi periferici di PubNub anziché sul proprio server. Le funzioni hanno accesso a richieste HTTP, archiviazione Key-Value e altre funzioni nello stesso spazio.

PubNub nelle applicazioni mobili

L'SDK di PubNub per piattaforme mobili è disponibile per iOS (Swift), Android (Kotlin/Java), Flutter (Dart) e React Native (JavaScript). Gli SDK mobili supportano l'intera gamma di funzionalità: pub/sub, presenza, cronologia, PAM e PubNub Functions. Per le notifiche push, PubNub si integra con APNs e FCM tramite uno speciale meccanismo di gateway push mobile.

L'ottimizzazione per dispositivi mobili include heartbeat adattivo, elaborazione batch dei messaggi e supporto per le modalità in background. L'SDK di PubNub per iOS utilizza l'API Background Task per mantenere la connessione quando l'app è ridotta a icona (fino a 30 secondi di tempo di background standard). Per un funzionamento in background più lungo, sono necessarie notifiche push.

Mobile Push Gateway è un meccanismo di invio di notifiche push tramite PubNub. Quando un messaggio viene pubblicato in un canale, PubNub determina automaticamente quali sottoscrittori sono offline e invia loro una notifica push tramite APNs (iOS) o FCM (Android). La configurazione viene eseguita una volta nel pannello di amministrazione — dopo di che, tutti i messaggi dal canale vengono automaticamente duplicati nel canale push. Secondo la documentazione di PubNub (2025), il gateway elabora fino a 10.000 notifiche push al secondo.

Domande frequenti

In cosa PubNub si differenzia da Pusher?

PubNub offre più SDK (oltre 75 piattaforme), funzioni serverless integrate e Stream Controller per l'elaborazione dei messaggi. Pusher è più facile da configurare, ma PubNub offre più controllo sull'instradamento e la trasformazione dei dati.

Come garantisce PubNub la consegna dei messaggi?

PubNub utilizza un meccanismo at-least-once con nuovo tentativo automatico in caso di fallimento. Ogni messaggio ha un timetoken univoco per la deduplicazione. I messaggi vengono bufferizzati per 30 secondi per i sottoscrittori offline.

Quanto costa PubNub?

Il piano gratuito include 100 connessioni simultanee e 1 milione di messaggi al mese. I piani a pagamento partono da $49/mese per 1.000 connessioni simultanee con messaggi illimitati.

PubNub supporta la crittografia?

Sì, PubNub supporta TLS 1.3 per tutte le connessioni e crittografia end-to-end opzionale lato client (AES-256) con gestione delle chiavi tramite PAM. La modalità Cipher Key è disponibile per i clienti enterprise.

Quali linguaggi supporta l'SDK di PubNub?

PubNub fornisce SDK per oltre 75 piattaforme, tra cui JavaScript, Swift, Kotlin, Java, Dart, C#, Python, Ruby, Go, C++, PHP, Rust e Objective-C. Questo è il più grande ecosistema tra i servizi in tempo reale.

Riepilogo

  • PubNub è una rete globale di messaggistica in tempo reale con oltre 15 data center e supporto per oltre 75 piattaforme.
  • Il sistema di chiavi publish/subscribe/secret + PAM fornisce una gestione flessibile dei diritti di accesso.
  • PubNub Functions consente l'elaborazione serverless dei messaggi senza infrastruttura server propria.
  • Stream Controller gestisce l'instradamento, il filtraggio e la trasformazione dei messaggi sui nodi periferici della rete.
  • Mobile Push Gateway invia automaticamente notifiche push tramite APNs e FCM per i sottoscrittori offline.
  • I canali supportano fino a 50.000 sottoscrittori e Channel Groups semplifica la gestione di più canali.
  • Per progetti con ampio supporto di piattaforme ed elaborazione messaggi integrata, scegli PubNub; per scenari più semplici, Pusher è adatto.

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