Pusher — co to jest, platforma real-time i integracja w aplikacjach

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

Pusher: hosted-usługa do dwukierunkowej komunikacji w czasie rzeczywistym, zapewniająca infrastrukturę dla kanałów, zdarzeń i powiadomień webhook. Uwalnia programistę od konieczności wdrażania własnego serwera WebSocket i zapewnia dostarczanie komunikatów do milionów urządzeń. Według danych oficjalnej dokumentacji Pusher (2025), serwis przetwarza ponad 40 miliardów komunikatów miesięcznie na całym świecie.

Najważniejsze

  • Pusher — chmurowa usługa do komunikatów w czasie rzeczywistym, niewymagająca własnego zarządzania serwerem.
  • Kanały i zdarzenia — publikacja komunikatów odbywa się przez nazwane kanały z obsługą typów: public, private, presence.
  • Transport WebSocket — klienci łączą się przez WebSocket z fallbackiem na HTTP polling.
  • Integracja Webhook — zdarzenia serwerowe są dostarczane do twojego backendu przez HTTP-haki.
  • SDK dla wszystkich platform — gotowe klienty dla JavaScript, iOS, Android, React Native i języków serwerowych.

Czym jest Pusher?

Pusher — chmurowa usługa do dwukierunkowej komunikacji w czasie rzeczywistym, założona w 2011 roku. Zapewnia gotową infrastrukturę do wysyłania i odbierania komunikatów w czasie rzeczywistym bez konieczności zarządzania własnym serwerem WebSocket. Pusher jest używany do budowy czatów, powiadomień na żywo, wspólnego edytowania i tablic wyników w grach.

W przeciwieństwie do bibliotek takich jak Socket.IO, które wymagają wdrożenia i utrzymania własnego serwera, Pusher działa w modelu SaaS (Software as a Service). Programista rejestruje się, otrzymuje klucze (app_id, key, secret) i używa REST API Pusher do publikowania zdarzeń. Infrastruktura serwerowa jest w pełni zarządzana przez platformę Pusher.

Według danych oficjalnego bloga Pusher (2025), platforma obsługuje ponad 250 000 aktywnych projektów na całym świecie. Wśród znanych klientów są GitHub (powiadomienia w czasie rzeczywistym), Trello (synchronizacja tablic) i Intercom (czat wsparcia). Pusher wspiera centra danych w USA, Europie i Azji w celu minimalizacji opóźnień.

Historia rozwoju Pusher

Pusher został uruchomiony w 2011 roku jako jedna z pierwszych hosted-usług dla WebSocket. W 2014 roku firma przedstawiła Pusher Channels — obecną architekturę z obsługą kanałów private i presence. W 2017 roku dodano obsługę webhook dla zdarzeń po stronie serwera. W 2022 roku Pusher uruchomił Pusher Beams — usługę powiadomień push dla platform mobilnych.

Architektura Pusher różni się od self-hosted rozwiązań tym, że całe przetwarzanie subskrypcji, zarządzanie połączeniami i routing zdarzeń odbywa się po stronie Pusher Cloud. Programista zarządza tylko autoryzacją kanałów private przez swój backend.

Jak działa Pusher

Architektura Pusher opiera się na modelu Publisher-Subscriber. Aplikacje serwerowe publikują zdarzenia przez REST API Pusher, a aplikacje klienckie otrzymują je przez stałe połączenie WebSocket. Pusher działa jako pośrednik między wydawcami a subskrybentami.

Gdy serwer wysyła zdarzenie przez żądanie POST do API Pusher, platforma określa docelowy kanał i rozsyła komunikat do wszystkich klientów subskrybujących ten kanał. Klienci otrzymują zdarzenie przez już otwarte połączenie WebSocket, co zapewnia opóźnienie 50–100 ms w zależności od lokalizacji geograficznej.

Każdy klient nawiązuje połączenie przez Pusher Client SDK, który automatycznie wybiera transport (WebSocket — priorytet, HTTP long-polling — fallback). SDK zarządza ponownym łączeniem, serializacją danych i obsługą błędów bez udziału programisty. Według danych dokumentacji technicznej Pusher (2025), czas ponownego połączenia po przerwaniu sieci wynosi mniej niż 1 sekundę.

Komponenty Pusher

System składa się z trzech komponentów: Pusher Server API (punkty końcowe REST do publikowania zdarzeń), Pusher Client SDK (biblioteki do subskrypcji zdarzeń) i Pusher WebHook (powiadomienia serwera o zdarzeniach połączenia/rozłączenia). Wszystkie komponenty działają asynchronicznie i niezależnie.

Typy kanałów Pusher

Pusher Channels obsługuje trzy typy kanałów, z których każdy jest przeznaczony do różnych scenariuszy użycia. Wybór typu kanału określa poziom dostępu, mechanizm autoryzacji i dostępne możliwości.

Typ kanałuPrefiksAutoryzacjaZastosowanie
Publicchannel-NiewymaganaDane publiczne: kursy walut, pogoda, kanał informacyjny
Privateprivate-Podpis żądania na serwerzePowiadomienia osobiste, czaty, dane użytkownika
Presencepresence-Podpis + informacja o użytkownikuStatus online, pokoje gier, wspólne edytowanie

Kanały Public są dostępne dla wszystkich klientów bez autoryzacji i nadają się do danych rozgłoszeniowych. Kanały Private wymagają autoryzacji przez serwer programisty: klient wysyła żądanie do swojego backendu z socket_id i channel_name, serwer podpisuje żądanie tajnym kluczem Pusher i zwraca token auth. Kanały Presence dodatkowo przekazują informację o użytkowniku (user_id, user_info) i pozwalają śledzić, kto jest aktualnie online.

Według danych dokumentacji Pusher (2025), maksymalna liczba jednocześnie podłączonych klientów na jeden kanał wynosi 10 000 dla kanałów public i private. Dla kanałów presence limit wynosi 10 000 użytkowników na kanał z obsługą do 100 000 użytkowników na aplikację.

Zdarzenia i triggery Pusher

Model zdarzeń Pusher opiera się na nazwanych zdarzeniach, które są publikowane w kanale. Każde zdarzenie ma nazwę (maksymalnie 200 znaków), dane w formacie JSON i opcjonalny socket_id do wykluczenia ponownego wysłania do inicjatora zdarzenia.

Triggery — to żądania HTTP POST do API Pusher, które publikują zdarzenie w kanale. Format żądania: POST /apps/{app_id}/events z ciałem zawierającym channel, name i data. Pusher Server API obsługuje triggery z dowolnego środowiska serwerowego przez oficjalne biblioteki (PHP, Ruby, Python, Go, Java, Node.js).

Pusher obsługuje batch-triggery — publikację jednego zdarzenia w wielu kanałach jednym żądaniem. Jest to bardziej wydajne niż sekwencyjne wywołania i gwarantuje atomowość dostarczenia. Według danych testów wydajności Pusher (2024), batch-trigger na 100 kanałów zajmuje 30–50 ms, podczas gdy sekwencyjne wywołania — 2–5 sekund.

Integracja Webhook

Pusher WebHook pozwala twojemu serwerowi otrzymywać powiadomienia o zdarzeniach infrastruktury: podłączenie klienta, rozłączenie, wystąpienie błędu. Żądania Webhook są podpisywane HMAC-SHA256 w celu weryfikacji. Jest to kluczowe dla logowania, analityki i synchronizacji stanu.

Jak zintegrować Pusher w projekcie

Integracja Pusher składa się z dwóch części: serwerowej (publikacja zdarzeń) i klienckiej (subskrypcja zdarzeń). Rozważmy przykład na Node.js dla części serwerowej i JavaScript dla klienckiej. Na początek należy utworzyć aplikację w panelu Pusher i uzyskać dane uwierzytelniające.

Według danych dokumentacji Pusher (2025), podstawowy plan (Sandbox) obejmuje do 100 równoczesnych połączeń i 200 000 komunikatów dziennie — wystarczająco do rozwoju i testowania. Plany produkcyjne zaczynają się od $49 miesięcznie za 1000 połączeń.

Kod serwerowy: publikacja zdarzenia

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('Zdarzenie opublikowane');
}).catch(console.error);

Kod kliencki: subskrypcja zdarzeń

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('Otrzymane zdarzenie:', data);
    displayNotification(data.message);
});

Pusher w aplikacjach mobilnych

Pusher udostępnia SDK dla iOS (Swift) i Android (Java/Kotlin), które w pełni powtarzają funkcjonalność klienta JavaScript. Mobilne SDK obsługują te same typy kanałów, mechanizm autoryzacji i model zdarzeń. Dla React Native dostępny jest pakiet pusher-js działający przez most JavaScript.

Na urządzeniach mobilnych Pusher SDK automatycznie obsługuje przełączanie między Wi-Fi a siecią komórkową, używając mechanizmu ponownego łączenia z opóźnieniem wykładniczym. Jest to szczególnie ważne dla aplikacji iOS, gdzie iOS może wymuszać zamykanie połączeń WebSocket przy pracy w tle.

Według danych bloga technicznego Pusher (2024), średnie zużycie ruchu przez jedno połączenie Pusher wynosi 1–2 KB na minutę przy braku aktywnych zdarzeń. Osiąga się to dzięki zoptymalizowanemu protokołowi heartbeat z interwałem 30 sekund. Aplikacja średniej wielkości może obsługiwać do 1000 równoczesnych połączeń Pusher bez znaczącego wpływu na zużycie baterii.

Pusher Beams do powiadomień push

Pusher Beams — dodatkowa usługa do wysyłania powiadomień push na urządzenia mobilne przez APNs (iOS) i FCM (Android). Beams integruje się z Pusher Channels: zdarzenie z kanału może automatycznie wyzwalać powiadomienie push, jeśli klient jest offline. Rozwiązuje to problem dostarczania komunikatów przy zamkniętej aplikacji.

Bezpieczeństwo i autoryzacja Pusher

Bezpieczeństwo Pusher jest zrealizowane na kilku poziomach. Każde żądanie do Pusher API jest podpisywane HMAC-SHA256 z użyciem app_secret. Gwarantuje to, że tylko autoryzowany serwer może publikować zdarzenia. Klienckie SDK używają app_key do identyfikacji aplikacji, ale do dostępu do kanałów private i presence wymagana jest dodatkowa autoryzacja.

Autoryzacja kanałów private odbywa się w trzech krokach: klient wywołuje pusher.subscribe('private-channel'), Pusher Client SDK wysyła żądanie HTTP do twojego punktu końcowego backendu (/pusher/auth), serwer sprawdza prawa użytkownika i zwraca token auth podpisany tajnym kluczem. Pusher weryfikuje podpis i zezwala na subskrypcję.

Zaleca się używanie połączeń TLS dla wszystkich żądań (ustawienie useTLS: true w SDK). Pusher obsługuje również ograniczenie dostępu według adresów IP dla żądań serwerowych do REST API. Dla taryf enterprise dostępna jest obsługa VPC (Virtual Private Cloud) i wydzielonych klastrów z izolowaną infrastrukturą.

Często zadawane pytania

Czym różni się Pusher od Socket.IO?

Pusher — to hosted-usługa (SaaS) niewymagająca zarządzania serwerem. Socket.IO — biblioteka, którą trzeba wdrożyć samodzielnie. Pusher jest prostszy w konfiguracji, ale droższy przy skalowaniu, Socket.IO wymaga prac DevOps, ale jest tańszy przy dużej objętości.

Ile kosztuje Pusher?

Darmowy plan Sandbox obejmuje 100 połączeń i 200 000 komunikatów dziennie. Plany produkcyjne zaczynają się od $49/mies. (1000 połączeń, nieograniczone komunikaty) do enterprise z indywidualnymi warunkami.

Jak Pusher zapewnia dostarczanie komunikatów?

Pusher używa WebSocket z automatycznym fallbackiem na HTTP long-polling. Dla krytycznych komunikatów dostępna jest kolejka po stronie Pusher z gwarancją dostarczenia co najmniej raz (at-least-once).

Czy można używać Pusher w Rosji?

Tak, Pusher jest dostępny z Rosji przez klaster europejski (eu). Opóźnienie wynosi 50–100 ms dla europejskich centrów danych. Dla projektów z wymaganiami lokalizacji danych zaleca się rozważenie alternatyw.

Jakie są alternatywy dla Pusher?

Główni konkurenci to Ably (podobna funkcjonalność, bardziej elastyczne taryfy), PubNub (globalna sieć dostarczania), Socket.IO (self-hosted) i Firebase Realtime Database (ekosystem Google).

Podsumowanie

  • Pusher — chmurowa usługa SaaS do komunikatów w czasie rzeczywistym, niewymagająca zarządzania własną infrastrukturą serwerową.
  • Trzy typy kanałów — public (bez autoryzacji), private (z podpisem) i presence (ze śledzeniem użytkowników) — pokrywają wszystkie scenariusze.
  • Model zdarzeń opiera się na nazwanych zdarzeniach z JSON-payload, publikowanych przez REST API.
  • Mobilne SDK dla iOS i Android obsługują automatyczne ponowne łączenie i zoptymalizowane zużycie ruchu.
  • Bezpieczeństwo zapewniane jest przez podpis HMAC żądań, szyfrowanie TLS i autoryzację kanałów private przez backend.
  • Pusher Beams dodaje powiadomienia push do dostarczania offline przez APNs i FCM.
  • Dla małych projektów z szybkim uruchomieniem Pusher jest optymalny, przy dużej liczbie połączeń bardziej ekonomiczny jest self-hosted Socket.IO.

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ż