Pusher: hosztolt szolgáltatás kétirányú valós idejű kommunikációhoz, infrastruktúrát biztosítva csatornákhoz, eseményekhez és webhook-értesítésekhez. Megszabadítja a fejlesztőt a saját WebSocket-szerver telepítésének szükségességétől, és biztosítja az üzenetek eljuttatását milliónyi eszközhöz. A hivatalos Pusher dokumentáció (2025) szerint a szolgáltatás havonta több mint 40 milliárd üzenetet dolgoz fel világszerte.
Főbb pontok
Pusher — felhőalapú szolgáltatás kétirányú valós idejű kommunikációhoz, amelyet 2011-ben alapítottak. Kész infrastruktúrát biztosít valós idejű üzenetek küldéséhez és fogadásához anélkül, hogy saját WebSocket-szervert kellene kezelni. A Pusher chatek, élő értesítések, közös szerkesztés és játék ranglisták építésére használható.
Ellentétben az olyan könyvtárakkal, mint a Socket.IO, amelyek saját szerver telepítését és karbantartását igénylik, a Pusher SaaS (Software as a Service) modellben működik. A fejlesztő regisztrál, kap kulcsokat (app_id, key, secret), és a Pusher REST API-t használja események közzétételére. A szerverinfrastruktúrát teljes mértékben a Pusher platform kezeli.
A hivatalos Pusher blog (2025) szerint a platform több mint 250 000 aktív projektet szolgál ki világszerte. Az ismert ügyfelek közé tartozik a GitHub (valós idejű értesítések), a Trello (táblák szinkronizálása) és az Intercom (támogatási chat). A Pusher adatközpontokat támogat az USA-ban, Európában és Ázsiában a késleltetés minimalizálása érdekében.
A Pusher 2011-ben indult az egyik első hosztolt WebSocket-szolgáltatásként. 2014-ben a cég bemutatta a Pusher Channels-t — a jelenlegi architektúrát private és presence csatornák támogatásával. 2017-ben hozzáadták a webhook támogatást a szerveroldali eseményekhez. 2022-ben a Pusher elindította a Pusher Beams-t — push-értesítési szolgáltatást mobil platformokhoz.
A Pusher architektúrája abban különbözik a self-hosted megoldásoktól, hogy az összes feliratkozás feldolgozása, kapcsolatkezelés és eseményútválasztás a Pusher Cloud oldalán történik. A fejlesztő csak a private csatornák hitelesítését kezeli a saját backendjén keresztül.
A Pusher architektúrája a Publisher-Subscriber modellen alapul. A szerveralkalmazások eseményeket tesznek közzé a Pusher REST API-n keresztül, a kliensalkalmazások pedig állandó WebSocket-kapcsolaton keresztül fogadják azokat. A Pusher közvetítőként működik a kiadók és a feliratkozók között.
Amikor a szerver egy eseményt küld POST kérésen keresztül a Pusher API-nak, a platform meghatározza a célcsatornát, és eljuttatja az üzenetet az összes, arra a csatornára feliratkozott klienshez. A kliensek a már megnyitott WebSocket-kapcsolaton keresztül kapják az eseményt, ami 50–100 ms késleltetést biztosít a földrajzi elhelyezkedéstől függően.
Minden kliens a Pusher Client SDK-n keresztül létesít kapcsolatot, amely automatikusan kiválasztja a szállítást (WebSocket — elsőbbség, HTTP long-polling — tartalék). Az SDK kezeli az újracsatlakozást, az adatok sorosítását és a hibakezelést a fejlesztő részvétele nélkül. A Pusher műszaki dokumentációja (2025) szerint az újracsatlakozási idő hálózati megszakítás esetén kevesebb mint 1 másodperc.
A rendszer három összetevőből áll: Pusher Server API (REST-végpontok események közzétételéhez), Pusher Client SDK (könyvtárak eseményekre való feliratkozáshoz) és Pusher WebHook (szerverértesítések kapcsolódási/lecsatlakozási eseményekről). Minden összetevő aszinkron és független módon működik.
A Pusher Channels három csatornatípust támogat, amelyek mindegyike különböző használati forgatókönyvekhez készült. A csatorna típusának kiválasztása meghatározza a hozzáférési szintet, a hitelesítési mechanizmust és a rendelkezésre álló képességeket.
| Csatorna típusa | Előtag | Hitelesítés | Használat |
|---|---|---|---|
| Public | channel- | Nem szükséges | Nyilvános adatok: árfolyamok, időjárás, hírfolyam |
| Private | private- | Kérés aláírása a szerveren | Személyes értesítések, chatek, felhasználói adatok |
| Presence | presence- | Aláírás + felhasználói információ | Online állapot, játékszobák, közös szerkesztés |
A Public csatornák minden kliens számára elérhetők hitelesítés nélkül, és alkalmasak adatszórásra. A Private csatornák hitelesítést igényelnek a fejlesztő szerverén keresztül: a kliens kérést küld a saját backendjének socket_id és channel_name paraméterekkel, a szerver aláírja a kérést a Pusher titkos kulccsal, és visszaad egy auth tokent. A Presence csatornák emellett felhasználói információkat (user_id, user_info) továbbítanak, és lehetővé teszik annak nyomon követését, hogy ki van online.
A Pusher dokumentáció (2025) szerint a csatornánként egyidejűleg csatlakoztatott kliensek maximális száma 10 000 a public és private csatornák esetében. A presence csatornák esetében a korlát 10 000 felhasználó csatornánként, legfeljebb 100 000 felhasználó alkalmazásonként.
A Pusher eseménymodellje elnevezett eseményeken alapul, amelyeket egy csatornában tesznek közzé. Minden eseménynek van neve (maximum 200 karakter), adatai JSON formátumban, és opcionális socket_id az esemény kezdeményezőjének történő ismételt elküldés kizárásához.
A triggerek — HTTP POST kérések a Pusher API-hoz, amelyek egy eseményt tesznek közzé egy csatornában. A kérés formátuma: POST /apps/{app_id}/events, a törzs tartalmazza a channel, name és data paramétereket. A Pusher Server API támogatja a triggereket bármilyen szerverkörnyezetből a hivatalos könyvtárakon keresztül (PHP, Ruby, Python, Go, Java, Node.js).
A Pusher támogatja a batch triggereket — egy esemény közzétételét több csatornában egyetlen kéréssel. Ez hatékonyabb, mint a szekvenciális hívások, és garantálja a kézbesítés atomosságát. A Pusher teljesítménytesztjei (2024) szerint a batch trigger 100 csatornán 30–50 ms-ig tart, míg a szekvenciális hívások 2–5 másodpercig tartanak.
A Pusher WebHook lehetővé teszi a szerver számára, hogy értesítéseket kapjon az infrastruktúra-eseményekről: kliens csatlakozása, lecsatlakozása, hiba bekövetkezése. A Webhook kéréseket HMAC-SHA256 aláírással látják el az ellenőrzéshez. Ez kulcsfontosságú a naplózáshoz, analitikához és az állapot szinkronizálásához.
A Pusher integráció két részből áll: szerveroldali (események közzététele) és kliensoldali (feliratkozás eseményekre). Nézzünk egy példát Node.js-en a szerveroldali részhez és JavaScript-en a kliensoldali részhez. Először létre kell hozni egy alkalmazást a Pusher irányítópulton, és meg kell szerezni a hitelesítő adatokat.
A Pusher dokumentáció (2025) szerint az alapcsomag (Sandbox) legfeljebb 100 egyidejű kapcsolatot és napi 200 000 üzenetet tartalmaz — ami elegendő a fejlesztéshez és teszteléshez. A termelési csomagok havi $49-tól kezdődnek 1000 kapcsolatért.
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('Esemény közzétéve');
}).catch(console.error);
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('Fogadott esemény:', data);
displayNotification(data.message);
});
A Pusher SDK-t biztosít iOS (Swift) és Android (Java/Kotlin) rendszerekhez, amelyek teljesen megismétlik a JavaScript kliens funkcióit. A mobil SDK-k ugyanazokat a csatornatípusokat, hitelesítési mechanizmust és eseménymodellt támogatják. A React Native számára elérhető a pusher-js csomag, amely a JavaScript hídon keresztül működik.
Mobil eszközökön a Pusher SDK automatikusan kezeli a Wi-Fi és a mobilhálózat közötti váltást, exponenciális késleltetésű újracsatlakozási mechanizmust használva. Ez különösen fontos az iOS alkalmazásoknál, ahol az iOS kényszerítheti a WebSocket-kapcsolatok bezárását háttérmunka során.
A Pusher műszaki blogja (2024) szerint egy Pusher-kapcsolat átlagos forgalomfogyasztása 1–2 KB percenként aktív események hiányában. Ezt egy optimalizált heartbeat protokollal érik el, 30 másodperces időközzel. Egy közepes méretű alkalmazás akár 1000 egyidejű Pusher-kapcsolatot is támogathat anélkül, hogy jelentősen befolyásolná az akkumulátor fogyasztását.
A Pusher Beams — kiegészítő szolgáltatás push-értesítések küldésére mobileszközökre APNs (iOS) és FCM (Android) segítségével. A Beams integrálódik a Pusher Channels-szel: egy csatornán lévő esemény automatikusan kiválthat egy push-értesítést, ha a kliens offline. Ez megoldja az üzenetek kézbesítésének problémáját, amikor az alkalmazás be van zárva.
A Pusher biztonsága több szinten van megvalósítva. Minden, a Pusher API-nak küldött kérést HMAC-SHA256 aláírással látnak el az app_secret használatával. Ez garantálja, hogy csak egy jogosult szerver tehet közzé eseményeket. A kliens SDK-k az app_key-t használják az alkalmazás azonosításához, de a private és presence csatornák eléréséhez további hitelesítés szükséges.
A private csatornák hitelesítése három lépésben történik: a kliens meghívja a pusher.subscribe('private-channel') parancsot, a Pusher Client SDK HTTP kérést küld a backend végpontjához (/pusher/auth), a szerver ellenőrzi a felhasználó jogosultságait és visszaad egy titkos kulccsal aláírt auth tokent. A Pusher ellenőrzi az aláírást és engedélyezi a feliratkozást.
Ajánlott TLS-kapcsolatok használata minden kéréshez (useTLS: true beállítás az SDK-ban). A Pusher emellett támogatja az IP-cím szerinti hozzáférés korlátozását a REST API-nak küldött szerverkérésekhez. Vállalati csomagok esetén elérhető a VPC (Virtual Private Cloud) és dedikált klaszterek támogatása elszigetelt infrastruktúrával.
Gyakran ismételt kérdések
A Pusher — egy hosztolt szolgáltatás (SaaS), amely nem igényel szerverkezelést. A Socket.IO — egy könyvtár, amelyet saját magának kell telepítenie. A Pusher egyszerűbben beállítható, de drágább skálázáskor, a Socket.IO DevOps munkát igényel, de nagy mennyiségben olcsóbb.
Az ingyenes Sandbox csomag 100 kapcsolatot és napi 200 000 üzenetet tartalmaz. A termelési csomagok havi $49-tól (1000 kapcsolat, korlátlan üzenetek) az egyedi feltételekkel rendelkező enterprise szintig terjednek.
A Pusher WebSocketet használ automatikus HTTP long-polling tartalékkal. Kritikus üzenetek esetén egy sor áll rendelkezésre a Pusher oldalán, at-least-once kézbesítési garanciával.
Igen, a Pusher elérhető Oroszországból az európai klaszteren (eu) keresztül. A késleltetés 50–100 ms az európai adatközpontok esetében. Adatlokalizációs követelményekkel rendelkező projektek esetén ajánlott alternatívákat fontolóra venni.
A fő versenytársak az Ably (hasonló funkcionalitás, rugalmasabb díjszabás), a PubNub (globális kézbesítési hálózat), a Socket.IO (self-hosted) és a Firebase Realtime Database (Google ökoszisztéma).
Összegzés
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is