PubNub — ce este, SDK în timp real și cum funcționează în aplicații

Autor: IT Sectr Publicat: 2026-06-02 Timp de citire: 8 min

PubNub — o rețea globală pentru mesagerie în timp real, care oferă infrastructură pentru publicarea și abonarea la mesaje prin WebSocket cu latență minimă. Este destinată aplicațiilor care necesită livrare fiabilă a datelor la sarcină mare și conexiune instabilă. Conform documentației oficiale PubNub (2025), platforma procesează peste 1 trilion de mesaje lunar pentru 70 000+ de aplicații din întreaga lume.

Principalele puncte

  • PubNub — rețea globală pentru mesaje în timp real cu 15+ centre de date și livrare garantată.
  • Pub/Sub cu chei — publicare și abonare prin chei publish/subscribe cu separarea drepturilor de acces.
  • Stream Controller — gestionarea fluxului de mesaje cu suport pentru filtrare, transformare și bufferizare.
  • Presence — urmărirea stării online a participanților canalului cu detectare prin timeout.
  • SDK pentru 75+ platforme — cel mai mare ecosistem de biblioteci client printre serviciile în timp real.

Ce este PubNub?

PubNub — o rețea globală de transmitere a datelor în timp real, fondată în 2010. Oferă API pentru publicarea și abonarea la mesaje, precum și servicii suplimentare: stocarea istoricului, gestionarea prezenței, funcții serverless (PubNub Functions) și analitică a fluxurilor de date.

Arhitectura PubNub se bazează pe o rețea distribuită de puncte de prezență (POP) situate în 15+ regiuni geografice. Fiecare punct conține brokeri de cache care dirijează mesajele între editori și abonați cu latență minimă. PubNub nu utilizează un broker central unic — fiecare regiune funcționează independent și se sincronizează prin rețeaua globală.

Conform site-ului oficial PubNub (2025), platforma deservește peste 70 000 de aplicații în 200+ de țări. Printre clienții cheie se numără Logitech (gestionarea dispozitivelor IoT), GoPro (transmisie video în timp real), eBay (sincronizarea licitațiilor) și Snapchat (chat și notificări).

Principiile cheie ale PubNub

PubNub este construit pe trei principii: viteză (latență sub 10 ms în percentila 95 în cadrul unei singure regiuni), fiabilitate (garanție de livrare at-least-once cu reîncercare automată) și scalabilitate (extindere orizontală fără limită a numărului de canale). Platforma nu stochează mesajele în stocare pe termen lung — istoricul este accesibil prin serviciul conectabil separat Storage & Playback.

Cum funcționează PubNub

Modelul de funcționare PubNub se bazează pe modelul clasic publish-subscribe. Clientul editorului trimite un mesaj specificând canalul prin PubNub REST API cu cheia publish. PubNub livrează mesajul tuturor abonaților acestui canal prin conexiunile lor WebSocket active. Abonații primesc mesajul printr-un callback înregistrat în PubNub SDK.

Stratul de transport PubNub utilizează WebSocket ca protocol principal, cu fallback la HTTP long-polling pentru medii cu restricții. SDK gestionează automat conexiunea: stabilește, menține heartbeat (la fiecare 15–60 de secunde în funcție de rețea) și se reconectează la întrerupere.

Fiecare mesaj în PubNub conține metadate: UUID-ul expeditorului, marcaj temporal, număr de ordine (timetoken) și flaguri (store, replicate, eatAfterRead). Timetoken — un identificator unic PubNub bazat pe timp, care garantează ordinea globală a mesajelor în canal. Conform documentației PubNub (2025), timetoken are o rezoluție de 10 nanosecunde.

Fluxul mesajului

Când un client publică un mesaj, acesta trece prin Stream Controller — modulul de rutare PubNub. Stream Controller verifică drepturile de acces (PAM), aplică reguli de transformare (PubNub Functions), determină regiunile țintă și trimite mesajul tuturor abonaților. Dacă un abonat este deconectat, mesajul este bufferizat timp de 30 de secunde (implicit) în așteptarea restabilirii conexiunii.

Cheile PubNub: publish, subscribe, secret

Sistemul de chei PubNub împarte drepturile de acces în trei niveluri: cheia publish (doar publicare), cheia subscribe (doar abonare) și cheia secret (administrare). Fiecare aplicație primește un set de trei chei la înregistrare, dar cheia secret nu este niciodată transmisă clientului — este utilizată doar pe partea de server.

Cheia publish este utilizată pentru trimiterea mesajelor în canale. Cheia subscribe — pentru abonarea la canale și primirea mesajelor. Cheia secret — pentru gestionarea accesului prin PubNub Access Manager (PAM), crearea de tokenuri temporare de audiență și administrarea cheilor. Cheia secret este stocată în siguranță pe server și nu este dezvăluită niciodată clienților.

PubNub suportă mai multe moduri de autentificare: după adresa IP (pentru servere), după cheia secretă (pentru operații administrative), după tokenuri temporare (pentru clienți). Tokenurile temporare sunt emise prin PAM cu limitare de timp, canale și drepturi (read, write, manage).

Canalurile PubNub

Canalurile PubNub — rute denumite pentru mesaje. Numele canalului este un șir de până la 92 de caractere, care suportă litere latine, cifre, cratime și underscore. Canalurile sunt create dinamic la prima publicare sau abonare. PubNub suportă șabloane de canale prin simbolul * în cererea subscribe — aceasta permite abonarea la un grup de canale (de exemplu, user-*).

Channel Groups — mecanism de grupare a canalelor pentru abonare în masă. În loc să se aboneze la 50 de canale separate, clientul se abonează la un singur grup, iar toate mesajele din canalele incluse sunt livrate automat clientului. Channel Groups suportă imbricarea, dar adâncimea nu trebuie să depășească 3 niveluri.

Conform documentației tehnice PubNub (2025), numărul maxim de abonați pe un canal este de 50 000. Pentru sarcini mai mari, se recomandă utilizarea canalelor cu prefixe și șarjarea audienței (de exemplu, chat-room-001, chat-room-002). Channel Groups pot fi, de asemenea, organizate după principiul geografic sau tematic.

ParametruMaximNotă
Lungimea numelui canalului92 de caractereLitere latine, cifre, -, _
Abonați pe canal50 000Mai mult — șarjați
Channel Groups2000 de grupuri / cheiePână la 500 de canale în grup
Istoric (storage)Fără limităPlată pentru volumul de stocare

Cum să utilizați PubNub într-un proiect

Integrarea PubNub necesită înregistrare, crearea unei aplicații în panoul de administrare și obținerea unui set de chei. Bibliotecile PubNub sunt disponibile pentru JavaScript, Swift, Kotlin, Java, Dart (Flutter), C#, Python, Ruby, Go și multe alte limbaje. Să examinăm un exemplu în JavaScript pentru browser și Node.js.

Conform documentației PubNub (2025), biblioteca pubnub-js suportă atât CommonJS, cât și import ES Module. Pentru browser, se recomandă instalarea prin npm și apoi bundling cu webpack sau vite.

Abonarea la un canal

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('Mesaj nou:', event.message);
    },
    presence: (event) => {
        console.log('Prezență:', event.uuid, event.action);
    }
});

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

Obținerea istoricului mesajelor

js
pubnub.fetchMessages(
    { channels: ['chat-general'], count: 50 },
    (status, response) => {
        if (status.error) {
            console.error('Eroare la preluarea istoricului', status);
            return;
        }
        const messages = response.channels['chat-general'];
        messages.forEach((msg) => {
            console.log(msg.message, msg.timetoken);
        });
    }
);

Funcții PubNub și Stream Controller

PubNub Functions — platformă serverless pentru procesarea mesajelor pe partea PubNub. Funcțiile sunt scrise în JavaScript și executate într-un mediu izolat securizat (V8 isolate). Ele pot transforma, filtra, bufferiza și redirecționa mesajele înainte de a fi livrate abonaților.

Stream Controller — mecanism de rutare încorporat care gestionează fluxul de mesaje pe baza regulilor. Regulile determină care mesaje sunt livrate, care sunt eliminate și care sunt direcționate către PubNub Functions pentru procesare. Stream Controller suportă rutarea condiționată după conținutul mesajului, tipul canalului sau metadate.

Conform blogului PubNub (2024), PubNub Functions reduc costurile infrastructurii server pentru procesarea mesajelor cu 40–60% datorită faptului că logica de filtrare și transformare este executată pe nodurile de margine PubNub, nu pe propriul server. Funcțiile au acces la cereri HTTP, stocare Key-Value și alte funcții în același spațiu.

PubNub în aplicații mobile

PubNub SDK pentru platforme mobile sunt disponibile pentru iOS (Swift), Android (Kotlin/Java), Flutter (Dart) și React Native (JavaScript). SDK-urile mobile suportă setul complet de funcții: pub/sub, prezență, istoric, PAM și PubNub Functions. Pentru notificări push, PubNub se integrează cu APNs și FCM printr-un mecanism special mobile push gateway.

Optimizarea pentru dispozitive mobile include heartbeat adaptiv, procesare în lot a mesajelor și suport pentru modurile de fundal. PubNub SDK pentru iOS utilizează Background Task API pentru menținerea conexiunii când aplicația este minimizată (până la 30 de secunde de timp standard de fundal). Pentru o activitate de fundal mai lungă, este necesară utilizarea notificărilor push.

Mobile Push Gateway — mecanism de trimitere a notificărilor push prin PubNub. Când un mesaj este publicat într-un canal, PubNub determină automat care abonați sunt offline și le trimite o notificare push prin APNs (iOS) sau FCM (Android). Configurarea se face o singură dată în panoul de administrare — după aceea, toate mesajele din canal sunt duplicate automat în canalul push. Conform documentației PubNub (2025), gateway-ul procesează până la 10 000 de notificări push pe secundă.

Întrebări frecvente

Cu ce se deosebește PubNub de Pusher?

PubNub oferă mai multe SDK-uri (75+ platforme), funcții serverless încorporate și Stream Controller pentru procesarea mesajelor. Pusher este mai simplu de configurat, dar PubNub oferă mai mult control asupra rutării și transformării datelor.

Cum garantează PubNub livrarea mesajelor?

PubNub utilizează mecanismul at-least-once cu reîncercare automată la erori. Fiecare mesaj are un timetoken unic pentru deduplicare. Mesajele sunt bufferizate timp de 30 de secunde pentru abonații offline.

Cât costă PubNub?

Planul gratuit include 100 de conexiuni simultane și 1 milion de mesaje pe lună. Planurile plătite încep de la $49/lună pentru 1000 de conexiuni simultane cu număr nelimitat de mesaje.

Suportă PubNub criptarea?

Da, PubNub suportă TLS 1.3 pentru toate conexiunile și criptarea opțională end-to-end pe client (AES-256) cu gestionarea cheilor prin PAM. Pentru clienții enterprise, este disponibil modul Cipher Key.

Ce limbaje suportă PubNub SDK?

PubNub oferă SDK-uri pentru 75+ platforme, inclusiv JavaScript, Swift, Kotlin, Java, Dart, C#, Python, Ruby, Go, C++, PHP, Rust și Objective-C. Acesta este cel mai mare ecosistem printre serviciile în timp real.

Concluzii

  • PubNub — rețea globală de mesagerie în timp real cu 15+ centre de date și suport pentru 75+ platforme.
  • Sistemul de chei publish/subscribe/secret + PAM asigură o gestionare flexibilă a drepturilor de acces.
  • PubNub Functions permit procesarea serverless a mesajelor fără infrastructură proprie de server.
  • Stream Controller gestionează rutarea, filtrarea și transformarea mesajelor pe nodurile de margine ale rețelei.
  • Mobile Push Gateway trimite automat notificări push prin APNs și FCM pentru abonații offline.
  • Canalurile suportă până la 50 000 de abonați, iar Channel Groups simplifică gestionarea mai multor canale.
  • Pentru proiecte cu suport larg de platforme și procesare încorporată a mesajelor, alegeți PubNub; pentru scenarii mai simple, Pusher este suficient.

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și