PubNub — co to jest, SDK czasu rzeczywistego i jak działa w aplikacjach

Autor: IT Sectr Opublikowano: 2026-06-02 Czas czytania: 8 min

PubNub — globalna sieć do przesyłania wiadomości w czasie rzeczywistym, zapewniająca infrastrukturę do publikowania i subskrybowania wiadomości przez WebSocket z minimalnym opóźnieniem. Jest przeznaczona dla aplikacji wymagających niezawodnego dostarczania danych przy wysokim obciążeniu i niestabilnym połączeniu. Według danych oficjalnej dokumentacji PubNub (2025), platforma przetwarza ponad 1 bilion wiadomości miesięcznie dla 70 000+ aplikacji na całym świecie.

Najważniejsze

  • PubNub — globalna sieć do wiadomości w czasie rzeczywistym z 15+ centrami danych i gwarantowanym dostarczaniem.
  • Pub/Sub z kluczami — publikowanie i subskrypcja przez klucze publish/subscribe z podziałem uprawnień dostępu.
  • Stream Controller — zarządzanie strumieniem wiadomości z obsługą filtrowania, transformacji i buforowania.
  • Presence — śledzenie statusu online uczestników kanału z detekcją przez timeout.
  • SDK dla 75+ platform — największy ekosystem bibliotek klienckich wśród usług czasu rzeczywistego.

Co to jest PubNub?

PubNub — globalna sieć przesyłania danych w czasie rzeczywistym, założona w 2010 roku. Zapewnia API do publikowania i subskrybowania wiadomości oraz dodatkowe usługi: przechowywanie historii, zarządzanie obecnością, funkcje serverless (PubNub Functions) i analitykę strumieni danych.

Architektura PubNub opiera się na rozproszonej sieci punktów obecności (POP) zlokalizowanych w 15+ regionach geograficznych. Każdy punkt zawiera buforujące brokerki, które kierują wiadomości między wydawcami a subskrybentami z minimalnym opóźnieniem. PubNub nie używa pojedynczego centralnego brokera — każdy region działa niezależnie i synchronizuje się przez globalną sieć.

Według danych oficjalnej strony PubNub (2025), platforma obsługuje ponad 70 000 aplikacji w 200+ krajach. Wśród kluczowych klientów są Logitech (zarządzanie urządzeniami IoT), GoPro (transmisja wideo w czasie rzeczywistym), eBay (synchronizacja aukcji) i Snapchat (czat i powiadomienia).

Kluczowe zasady PubNub

PubNub jest zbudowana na trzech zasadach: szybkość (opóźnienie poniżej 10 ms w 95. percentylu w obrębie jednego regionu), niezawodność (gwarancja dostarczenia at-least-once z automatycznym ponawianiem) i skalowalność (horyzontalne rozszerzanie bez ograniczeń liczby kanałów). Platforma nie przechowuje wiadomości w długotrwałym magazynie — historia jest dostępna przez osobno podłączaną usługę Storage & Playback.

Jak działa PubNub

Model działania PubNub opiera się na klasycznym wzorcu publish-subscribe. Klient wydawcy wysyła wiadomość z określeniem kanału przez PubNub REST API z kluczem publish. PubNub dostarcza wiadomość wszystkim subskrybentom tego kanału przez ich aktywne połączenia WebSocket. Subskrybenci otrzymują wiadomość przez callback, zarejestrowany w PubNub SDK.

Warstwa transportowa PubNub używa WebSocket jako głównego protokołu, z fallbackiem na HTTP long-polling w środowiskach z ograniczeniami. SDK automatycznie zarządza połączeniem: ustanawia, utrzymuje heartbeat (co 15–60 sekund w zależności od sieci) i ponownie łączy się po przerwaniu.

Każda wiadomość w PubNub zawiera metadane: UUID nadawcy, znacznik czasu, numer sekwencyjny (timetoken) i flagi (store, replicate, eatAfterRead). Timetoken — unikalny identyfikator PubNub oparty na czasie, który gwarantuje globalną kolejność wiadomości w kanale. Według danych dokumentacji PubNub (2025), timetoken ma rozdzielczość 10 nanosekund.

Przepływ wiadomości

Kiedy klient publikuje wiadomość, przechodzi ona przez Stream Controller — moduł routingu PubNub. Stream Controller sprawdza uprawnienia dostępu (PAM), stosuje reguły transformacji (PubNub Functions), określa docelowe regiony i wysyła wiadomość do wszystkich subskrybentów. Jeśli subskrybent jest odłączony, wiadomość jest buforowana przez 30 sekund (domyślnie) w oczekiwaniu na przywrócenie połączenia.

Klucze PubNub: publish, subscribe, secret

System kluczy PubNub dzieli uprawnienia dostępu na trzy poziomy: klucz publish (tylko publikowanie), klucz subscribe (tylko subskrypcja) i klucz secret (administracja). Każda aplikacja otrzymuje zestaw trzech kluczy podczas rejestracji, ale klucz secret nigdy nie jest przekazywany do klienta — jest używany tylko po stronie serwera.

Klucz publish służy do wysyłania wiadomości do kanałów. Klucz subscribe — do subskrybowania kanałów i odbierania wiadomości. Klucz secret — do zarządzania dostępem przez PubNub Access Manager (PAM), tworzenia tymczasowych tokenów odbiorców i zarządzania kluczami. Klucz secret jest bezpiecznie przechowywany na serwerze i nigdy nie jest ujawniany klientom.

PubNub obsługuje wiele trybów uwierzytelniania: według adresu IP (dla serwerów), według klucza tajnego (dla operacji administracyjnych), według tymczasowych tokenów (dla klientów). Tymczasowe tokeny są wydawane przez PAM z ograniczeniem czasu działania, kanałów i uprawnień (read, write, manage).

Kanały PubNub

Kanały PubNub — nazwane trasy dla wiadomości. Nazwa kanału to ciąg znaków o długości do 92 znaków, obsługujący litery łacińskie, cyfry, myślniki i podkreślenia. Kanały są tworzone dynamicznie przy pierwszej publikacji lub subskrypcji. PubNub obsługuje wzorce kanałów przez symbol * w zapytaniu subscribe — umożliwia to subskrypcję grupy kanałów (np. user-*).

Channel Groups — mechanizm grupowania kanałów do masowej subskrypcji. Zamiast subskrybować 50 oddzielnych kanałów, klient subskrybuje jedną grupę, a wszystkie wiadomości z kanałów wchodzących w jej skład są automatycznie dostarczane klientowi. Channel Groups obsługują zagnieżdżanie, ale głębokość nie powinna przekraczać 3 poziomów.

Według danych dokumentacji technicznej PubNub (2025), maksymalna liczba subskrybentów na jeden kanał to 50 000. Dla wyższych obciążeń zaleca się używanie kanałów z prefiksami i shardowanie odbiorców (np. chat-room-001, chat-room-002). Channel Groups mogą być również organizowane według zasady geograficznej lub tematycznej.

ParametrMaksimumUwagi
Długość nazwy kanału92 znakiLitery łacińskie, cyfry, -, _
Subskrybentów na kanał50 000Powyżej — shardować
Channel Groups2000 grup / kluczDo 500 kanałów w grupie
Historia (storage)Bez limituPłatność za objętość przechowywania

Jak używać PubNub w projekcie

Integracja PubNub wymaga rejestracji, utworzenia aplikacji w panelu administracyjnym i uzyskania zestawu kluczy. Biblioteki PubNub są dostępne dla JavaScript, Swift, Kotlin, Java, Dart (Flutter), C#, Python, Ruby, Go i wielu innych języków. Rozważmy przykład w JavaScript dla przeglądarki i Node.js.

Według danych dokumentacji PubNub (2025), biblioteka pubnub-js obsługuje zarówno CommonJS, jak i import ES Module. Dla przeglądarki zaleca się użycie kompilacji przez npm z późniejszym bundle'owaniem przez webpack lub vite.

Subskrypcja kanału

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('Nowa wiadomość:', event.message);
    },
    presence: (event) => {
        console.log('Obecność:', event.uuid, event.action);
    }
});

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

Pobieranie historii wiadomości

js
pubnub.fetchMessages(
    { channels: ['chat-general'], count: 50 },
    (status, response) => {
        if (status.error) {
            console.error('Błąd pobierania historii', status);
            return;
        }
        const messages = response.channels['chat-general'];
        messages.forEach((msg) => {
            console.log(msg.message, msg.timetoken);
        });
    }
);

Funkcje PubNub i Stream Controller

PubNub Functions — platforma serverless do przetwarzania wiadomości po stronie PubNub. Funkcje są pisane w JavaScript i wykonywane w bezpiecznym izolowanym środowisku (V8 isolate). Mogą transformować, filtrować, buforować i przekierowywać wiadomości zanim zostaną dostarczone subskrybentom.

Stream Controller — wbudowany mechanizm routingu, który zarządza strumieniem wiadomości na podstawie reguł. Reguły określają, które wiadomości są dostarczane, które odrzucane, a które kierowane do PubNub Functions w celu przetworzenia. Stream Controller obsługuje conditional routing według zawartości wiadomości, typu kanału lub metadanych.

Według danych bloga PubNub (2024), PubNub Functions zmniejszają koszty infrastruktury serwerowej do przetwarzania wiadomości o 40–60% dzięki temu, że logika filtrowania i transformacji jest wykonywana na węzłach brzegowych PubNub, a nie na własnym serwerze. Funkcje mają dostęp do żądań HTTP, magazynu Key-Value i innych funkcji w tej samej przestrzeni.

PubNub w aplikacjach mobilnych

PubNub SDK dla platform mobilnych są dostępne dla iOS (Swift), Android (Kotlin/Java), Flutter (Dart) i React Native (JavaScript). Mobilne SDK obsługują pełen zestaw funkcji: pub/sub, obecność, historię, PAM i PubNub Functions. Dla powiadomień push PubNub integruje się z APNs i FCM przez specjalny mechanizm mobile push gateway.

Optymalizacja dla urządzeń mobilnych obejmuje adaptacyjny heartbeat, przetwarzanie wsadowe wiadomości i obsługę trybów tła. PubNub SDK dla iOS używa Background Task API do utrzymywania połączenia przy zminimalizowanej aplikacji (do 30 sekund standardowego czasu tła). Dłuższa praca w tle wymaga użycia powiadomień push.

Mobile Push Gateway — mechanizm wysyłania powiadomień push przez PubNub. Gdy wiadomość jest publikowana w kanale, PubNub automatycznie określa, którzy subskrybenci są offline, i wysyła im powiadomienie push przez APNs (iOS) lub FCM (Android). Konfiguracja jest wykonywana jednorazowo w panelu administracyjnym — po tym wszystkie wiadomości z kanału są automatycznie duplikowane do kanału push. Według danych dokumentacji PubNub (2025), gateway przetwarza do 10 000 powiadomień push na sekundę.

Często zadawane pytania

Czym PubNub różni się od Pusher?

PubNub oferuje więcej SDK (75+ platform), wbudowane funkcje serverless i Stream Controller do przetwarzania wiadomości. Pusher jest prostszy w konfiguracji, ale PubNub daje większą kontrolę nad routingiem i transformacją danych.

Jak PubNub gwarantuje dostarczenie wiadomości?

PubNub używa mechanizmu at-least-once z automatycznym ponawianiem przy awariach. Każda wiadomość ma unikalny timetoken do deduplikacji. Wiadomości są buforowane przez 30 sekund dla subskrybentów offline.

Ile kosztuje PubNub?

Darmowy plan obejmuje 100 równoczesnych połączeń i 1 milion wiadomości miesięcznie. Plany płatne zaczynają się od $49/miesiąc za 1000 równoczesnych połączeń z nieograniczoną liczbą wiadomości.

Czy PubNub obsługuje szyfrowanie?

Tak, PubNub obsługuje TLS 1.3 dla wszystkich połączeń i opcjonalne szyfrowanie end-to-end po stronie klienta (AES-256) z zarządzaniem kluczami przez PAM. Dla klientów enterprise dostępny jest tryb Cipher Key.

Jakie języki obsługuje PubNub SDK?

PubNub udostępnia SDK dla 75+ platform, w tym JavaScript, Swift, Kotlin, Java, Dart, C#, Python, Ruby, Go, C++, PHP, Rust i Objective-C. To największy ekosystem wśród usług czasu rzeczywistego.

Podsumowanie

  • PubNub — globalna sieć przesyłania wiadomości w czasie rzeczywistym z 15+ centrami danych i obsługą 75+ platform.
  • System kluczy publish/subscribe/secret + PAM zapewnia elastyczne zarządzanie uprawnieniami dostępu.
  • PubNub Functions umożliwiają serverless przetwarzanie wiadomości bez własnej infrastruktury serwerowej.
  • Stream Controller zarządza routingiem, filtrowaniem i transformacją wiadomości na węzłach brzegowych sieci.
  • Mobile Push Gateway automatycznie wysyła push przez APNs i FCM dla subskrybentów offline.
  • Kanały obsługują do 50 000 subskrybentów, a Channel Groups upraszczają zarządzanie wieloma kanałami.
  • Dla projektów z szerokim wsparciem platformowym i wbudowanym przetwarzaniem wiadomości wybierz PubNub, dla prostszych scenariuszy wystarczy Pusher.

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również