PubNub — co to je, SDK v reálném čase a jak funguje v aplikacích

Autor: IT Sectr Publikováno: 2026-06-02 Doba čtení: 8 min

PubNub — globální síť pro zasílání zpráv v reálném čase, která poskytuje infrastrukturu pro publikování a přihlašování k odběru zpráv prostřednictvím WebSocketu s minimální latencí. Je určena pro aplikace vyžadující spolehlivé doručování dat při vysokém zatížení a nestabilním připojení. Podle oficiální dokumentace PubNub (2025) platforma zpracovává měsíčně více než 1 bilion zpráv pro 70 000+ aplikací po celém světě.

Hlavní body

  • PubNub — globální síť pro zprávy v reálném čase s 15+ datovými centry a garantovaným doručením.
  • Pub/Sub s klíči — publikování a odběr prostřednictvím klíčů publish/subscribe s oddělením přístupových práv.
  • Stream Controller — správa toku zpráv s podporou filtrování, transformace a ukládání do vyrovnávací paměti.
  • Presence — sledování online stavu účastníků kanálu s detekcí pomocí časového limitu.
  • SDK pro 75+ platforem — největší ekosystém klientských knihoven mezi službami v reálném čase.

Co je PubNub?

PubNub — globální síť pro přenos dat v reálném čase, založená v roce 2010. Poskytuje API pro publikování a přihlašování k odběru zpráv, stejně jako doplňkové služby: ukládání historie, správu přítomnosti, funkce serverless (PubNub Functions) a analýzu datových toků.

Architektura PubNub je založena na distribuované síti přítomných bodů (POP) umístěných v 15+ geografických regionech. Každý bod obsahuje kešovací brokery, které směrují zprávy mezi vydavateli a odběrateli s minimální latencí. PubNub nepoužívá jediného centrálního brokera — každý region pracuje nezávisle a synchronizuje se prostřednictvím globální sítě.

Podle oficiálních stránek PubNub (2025) platforma obsluhuje více než 70 000 aplikací ve 200+ zemích. Mezi klíčové klienty patří Logitech (správa IoT zařízení), GoPro (vysílání videa v reálném čase), eBay (synchronizace aukcí) a Snapchat (chat a oznámení).

Klíčové principy PubNub

PubNub je postaven na třech principech: rychlost (latence menší než 10 ms v 95. percentilu v rámci jednoho regionu), spolehlivost (záruka doručení at-least-once s automatickým opakováním) a škálovatelnost (horizontální rozšiřování bez omezení počtu kanálů). Platforma neukládá zprávy do dlouhodobého úložiště — historie je přístupná prostřednictvím samostatně připojitelné služby Storage & Playback.

Jak PubNub funguje

Model fungování PubNub je založen na klasickém vzoru publish-subscribe. Klientský vydavatel odešle zprávu s uvedením kanálu prostřednictvím PubNub REST API s publish klíčem. PubNub doručí zprávu všem odběratelům tohoto kanálu prostřednictvím jejich aktivních WebSocket připojení. Odběratelé obdrží zprávu prostřednictvím callback handleru registrovaného v PubNub SDK.

Transportní vrstva PubNub používá WebSocket jako primární protokol s fallbackem na HTTP long-polling pro prostředí s omezeními. SDK automaticky spravuje připojení: navazuje, udržuje heartbeat (každých 15–60 sekund v závislosti na síti) a znovu se připojuje při přerušení.

Každá zpráva v PubNub obsahuje metadata: UUID odesílatele, časové razítko, pořadové číslo (timetoken) a příznaky (store, replicate, eatAfterRead). Timetoken — jedinečný identifikátor PubNub založený na čase, který zaručuje globální pořadí zpráv v kanálu. Podle dokumentace PubNub (2025) má timetoken rozlišení 10 nanosekund.

Tok zprávy

Když klient publikuje zprávu, prochází Stream Controllerem — modulem pro směrování PubNub. Stream Controller kontroluje přístupová práva (PAM), aplikuje pravidla transformace (PubNub Functions), určuje cílové regiony a odesílá zprávu všem odběratelům. Pokud je odběratel odpojen, zpráva je ukládána do vyrovnávací paměti na 30 sekund (výchozí) v očekávání obnovení připojení.

Klíče PubNub: publish, subscribe, secret

Systém klíčů PubNub rozděluje přístupová práva na tři úrovně: publish klíč (pouze publikování), subscribe klíč (pouze odběr) a secret klíč (správa). Každá aplikace obdrží sadu tří klíčů při registraci, ale secret klíč není nikdy předáván klientovi — používá se pouze na straně serveru.

Publish klíč se používá pro odesílání zpráv do kanálů. Subscribe klíč — pro přihlášení k odběru kanálů a přijímání zpráv. Secret klíč — pro správu přístupu prostřednictvím PubNub Access Manager (PAM), vytváření dočasných tokenů publika a správu klíčů. Secret klíč je bezpečně uložen na serveru a nikdy není odhalen klientům.

PubNub podporuje několik režimů autentizace: podle IP adresy (pro servery), podle tajného klíče (pro administrativní operace), podle dočasných tokenů (pro klienty). Dočasné tokeny jsou vydávány prostřednictvím PAM s omezením času, kanálů a oprávnění (read, write, manage).

Kanály PubNub

Kanály PubNub — pojmenované cesty pro zprávy. Název kanálu je řetězec o délce až 92 znaků, podporující latinská písmena, číslice, pomlčky a podtržítka. Kanály jsou vytvářeny dynamicky při prvním publikování nebo přihlášení k odběru. PubNub podporuje vzory kanálů prostřednictvím symbolu * v požadavku subscribe — to umožňuje přihlášení k odběru skupiny kanálů (např. user-*).

Channel Groups — mechanismus seskupování kanálů pro hromadný odběr. Místo přihlášení k odběru 50 samostatných kanálů se klient přihlásí k odběru jedné skupiny a všechny zprávy z kanálů v ní obsažených jsou automaticky doručovány klientovi. Channel Groups podporují vnořování, ale hloubka by neměla přesáhnout 3 úrovně.

Podle technické dokumentace PubNub (2025) je maximální počet odběratelů na jeden kanál 50 000. Pro vyšší zatížení se doporučuje používat kanály s předponami a rozdělovat publikum (např. chat-room-001, chat-room-002). Channel Groups lze také organizovat podle geografického nebo tematického principu.

ParametrMaximumPoznámka
Délka názvu kanálu92 znakůLatinka, číslice, -, _
Odběratelů na kanál50 000Více — rozdělit
Channel Groups2000 skupin / klíčAž 500 kanálů ve skupině
Historie (storage)Bez omezeníPlatba za objem úložiště

Jak používat PubNub v projektu

Integrace PubNub vyžaduje registraci, vytvoření aplikace v administračním panelu a získání sady klíčů. Knihovny PubNub jsou k dispozici pro JavaScript, Swift, Kotlin, Java, Dart (Flutter), C#, Python, Ruby, Go a mnoho dalších jazyků. Podívejme se na příklad v JavaScriptu pro prohlížeč a Node.js.

Podle dokumentace PubNub (2025) knihovna pubnub-js podporuje import CommonJS i ES Module. Pro prohlížeč se doporučuje instalace přes npm a následné sestavení přes webpack nebo vite.

Přihlášení k odběru kanálu

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('Nová zpráva:', event.message);
    },
    presence: (event) => {
        console.log('Přítomnost:', event.uuid, event.action);
    }
});

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

Získání historie zpráv

js
pubnub.fetchMessages(
    { channels: ['chat-general'], count: 50 },
    (status, response) => {
        if (status.error) {
            console.error('Chyba při načítání historie', status);
            return;
        }
        const messages = response.channels['chat-general'];
        messages.forEach((msg) => {
            console.log(msg.message, msg.timetoken);
        });
    }
);

PubNub Functions a Stream Controller

PubNub Functions — serverless platforma pro zpracování zpráv na straně PubNub. Funkce se píší v JavaScriptu a spouštějí se v bezpečném izolovaném prostředí (V8 isolate). Mohou transformovat, filtrovat, ukládat do vyrovnávací paměti a přesměrovávat zprávy před doručením odběratelům.

Stream Controller — vestavěný mechanismus směrování, který spravuje tok zpráv na základě pravidel. Pravidla určují, které zprávy jsou doručeny, které jsou zahozeny a které jsou směrovány do PubNub Functions ke zpracování. Stream Controller podporuje podmíněné směrování podle obsahu zprávy, typu kanálu nebo metadat.

Podle blogu PubNub (2024) PubNub Functions snižují náklady na serverovou infrastrukturu pro zpracování zpráv o 40–60% díky tomu, že logika filtrování a transformace se provádí na okrajových uzlech PubNub, nikoli na vlastním serveru. Funkce mají přístup k HTTP požadavkům, Key-Value úložišti a dalším funkcím ve stejném prostoru.

PubNub v mobilních aplikacích

PubNub SDK pro mobilní platformy jsou k dispozici pro iOS (Swift), Android (Kotlin/Java), Flutter (Dart) a React Native (JavaScript). Mobilní SDK podporují plnou sadu funkcí: pub/sub, přítomnost, historii, PAM a PubNub Functions. Pro push oznámení se PubNub integruje s APNs a FCM prostřednictvím speciálního mechanismu mobile push gateway.

Optimalizace pro mobilní zařízení zahrnuje adaptivní heartbeat, dávkové zpracování zpráv a podporu režimů na pozadí. PubNub SDK pro iOS používá Background Task API pro udržení připojení při minimalizované aplikaci (až 30 sekund standardního času na pozadí). Pro delší práci na pozadí je vyžadováno použití push oznámení.

Mobile Push Gateway — mechanismus odesílání push oznámení prostřednictvím PubNub. Když je zpráva publikována do kanálu, PubNub automaticky určí, kteří odběratelé jsou offline, a pošle jim push oznámení prostřednictvím APNs (iOS) nebo FCM (Android). Konfigurace se provádí jednou v administračním panelu — poté jsou všechny zprávy z kanálu automaticky duplikovány do push kanálu. Podle dokumentace PubNub (2025) gateway zpracovává až 10 000 push oznámení za sekundu.

Často kladené otázky

Čím se PubNub liší od Pusher?

PubNub nabízí více SDK (75+ platforem), vestavěné serverless funkce a Stream Controller pro zpracování zpráv. Pusher se snadněji nastavuje, ale PubNub poskytuje větší kontrolu nad směrováním a transformací dat.

Jak PubNub zaručuje doručení zpráv?

PubNub používá mechanismus at-least-once s automatickým opakováním při chybách. Každá zpráva má jedinečný timetoken pro deduplikaci. Zprávy jsou ukládány do vyrovnávací paměti po dobu 30 sekund pro offline odběratele.

Kolik PubNub stojí?

Bezplatný plán zahrnuje 100 současných připojení a 1 milion zpráv měsíčně. Placené plány začínají od $49/měsíc za 1000 současných připojení s neomezeným počtem zpráv.

Podporuje PubNub šifrování?

Ano, PubNub podporuje TLS 1.3 pro všechna připojení a volitelné end-to-end šifrování na straně klienta (AES-256) se správou klíčů prostřednictvím PAM. Pro enterprise klienty je k dispozici režim Cipher Key.

Jaké jazyky PubNub SDK podporuje?

PubNub poskytuje SDK pro 75+ platforem, včetně JavaScript, Swift, Kotlin, Java, Dart, C#, Python, Ruby, Go, C++, PHP, Rust a Objective-C. To je největší ekosystém mezi službami v reálném čase.

Shrnutí

  • PubNub — globální síť pro zasílání zpráv v reálném čase s 15+ datovými centry a podporou 75+ platforem.
  • Systém klíčů publish/subscribe/secret + PAM poskytuje flexibilní správu přístupových práv.
  • PubNub Functions umožňují serverless zpracování zpráv bez vlastní serverové infrastruktury.
  • Stream Controller spravuje směrování, filtrování a transformaci zpráv na okrajových uzlech sítě.
  • Mobile Push Gateway automaticky odesílá push oznámení prostřednictvím APNs a FCM pro offline odběratele.
  • Kanály podporují až 50 000 odběratelů a Channel Groups zjednodušují správu více kanálů.
  • Pro projekty s širokou platformovou podporou a vestavěným zpracováním zpráv zvolte PubNub; pro jednodušší scénáře postačí Pusher.

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také