PubNub — egy globális hálózat valós idejű üzenetküldéshez, amely infrastruktúrát biztosít üzenetek közzétételéhez és feliratkozásához WebSocketen keresztül minimális késleltetéssel. Olyan alkalmazások számára készült, amelyek megbízható adatkézbesítést igényelnek nagy terhelés és instabil kapcsolat mellett. A PubNub hivatalos dokumentációja (2025) szerint a platform havonta több mint 1 billió üzenetet dolgoz fel 70 000+ alkalmazás számára világszerte.
Főbb pontok
PubNub — egy globális valós idejű adatátviteli hálózat, amelyet 2010-ben alapítottak. API-t biztosít üzenetek közzétételéhez és feliratkozásához, valamint további szolgáltatásokat: előzmények tárolása, jelenlét kezelése, serverless funkciók (PubNub Functions) és adatfolyam-analitika.
A PubNub architektúrája egy elosztott jelenléti pontokból álló hálózaton (POP) alapul, amelyek 15+ földrajzi régióban helyezkednek el. Minden pont gyorsítótárazó brókereket tartalmaz, amelyek minimális késleltetéssel irányítják az üzeneteket a kiadók és feliratkozók között. A PubNub nem használ egyetlen központi brókert — minden régió függetlenül működik és a globális hálózaton keresztül szinkronizál.
A PubNub hivatalos weboldala (2025) szerint a platform több mint 70 000 alkalmazást szolgál ki 200+ országban. A kulcsfontosságú ügyfelek közé tartozik a Logitech (IoT-eszközök kezelése), a GoPro (valós idejű videó közvetítés), az eBay (aukciók szinkronizálása) és a Snapchat (chat és értesítések).
A PubNub három elvre épül: sebesség (10 ms-nál kisebb késleltetés a 95. percentilisben egy régión belül), megbízhatóság (at-least-once kézbesítési garancia automatikus újrapróbálkozással) és skálázhatóság (horizontális bővítés a csatornák számának korlátozása nélkül). A platform nem tárolja az üzeneteket hosszú távú tárhelyen — az előzmények a külön csatlakoztatható Storage & Playback szolgáltatáson keresztül érhetők el.
A PubNub működési modellje a klasszikus publish-subscribe mintán alapul. A kiadó kliens egy üzenetet küld a csatorna megadásával a PubNub REST API-n keresztül a publish kulccsal. A PubNub kézbesíti az üzenetet a csatorna összes feliratkozójának az aktív WebSocket-kapcsolataikon keresztül. A feliratkozók a PubNub SDK-ban regisztrált callback-kezelőn keresztül kapják meg az üzenetet.
A szállítási réteg a PubNub elsődleges protokollként a WebSocketet használja, HTTP long-polling tartalékkal a korlátozott környezetek számára. Az SDK automatikusan kezeli a kapcsolatot: létrehozza, fenntartja a heartbeat-et (15–60 másodpercenként a hálózattól függően) és újracsatlakozik megszakítás esetén.
Minden üzenet a PubNubban metaadatokat tartalmaz: a feladó UUID-je, időbélyeg, sorszám (timetoken) és jelzők (store, replicate, eatAfterRead). Timetoken — egy egyedi, időalapú PubNub azonosító, amely garantálja az üzenetek globális sorrendjét a csatornában. A PubNub dokumentáció (2025) szerint a timetoken felbontása 10 nanomásodperc.
Amikor egy kliens közzétesz egy üzenetet, az áthalad a Stream Controlleren — a PubNub útválasztó modulján. A Stream Controller ellenőrzi a hozzáférési jogokat (PAM), alkalmazza a transzformációs szabályokat (PubNub Functions), meghatározza a célrégiókat és elküldi az üzenetet az összes feliratkozónak. Ha egy feliratkozó le van csatlakoztatva, az üzenet 30 másodpercig (alapértelmezett) pufferelésre kerül a kapcsolat helyreállításának várakozása közben.
A PubNub kulcsrendszere három szintre osztja a hozzáférési jogokat: publish kulcs (csak közzététel), subscribe kulcs (csak feliratkozás) és secret kulcs (adminisztráció). Minden alkalmazás három kulcsból álló készletet kap a regisztrációkor, de a secret kulcs soha nem kerül továbbításra a kliensnek — csak a szerver oldalon használatos.
A publish kulcs üzenetek csatornákba küldésére szolgál. A subscribe kulcs — csatornákra való feliratkozásra és üzenetek fogadására. A secret kulcs — a hozzáférés kezelésére a PubNub Access Manageren (PAM) keresztül, ideiglenes közönségtokenek létrehozására és kulcsok kezelésére. A secret kulcs biztonságosan tárolódik a szerveren, és soha nem kerül nyilvánosságra a kliensek számára.
A PubNub több hitelesítési módot támogat: IP-cím szerint (szerverek számára), titkos kulcs szerint (adminisztratív műveletekhez), ideiglenes tokenek szerint (kliensek számára). Az ideiglenes tokenek a PAM-on keresztül kerülnek kiadásra időbeli korlátozással, csatornákkal és jogosultságokkal (read, write, manage).
PubNub csatornák — elnevezett útvonalak az üzenetek számára. A csatorna neve legfeljebb 92 karakter hosszúságú karakterlánc, amely latin betűket, számokat, kötőjeleket és aláhúzásjeleket támogat. A csatornák dinamikusan jönnek létre az első közzétételkor vagy feliratkozáskor. A PubNub támogatja a csatornamintákat a * szimbólumon keresztül a subscribe kérésben — ez lehetővé teszi a csatornacsoportra való feliratkozást (pl. user-*).
Channel Groups — a csatornák csoportosításának mechanizmusa tömeges feliratkozáshoz. Ahelyett, hogy 50 különálló csatornára fizetne elő, a kliens egy csoportra fizet elő, és a csoportba tartozó csatornák összes üzenete automatikusan kézbesítésre kerül a kliens számára. A Channel Groups támogatja a beágyazást, de a mélység nem haladhatja meg a 3 szintet.
A PubNub technikai dokumentációja (2025) szerint a maximális feliratkozók száma egy csatornán 50 000. Magasabb terheléshez előtagokkal ellátott csatornák használata és a közönség shardolása javasolt (pl. chat-room-001, chat-room-002). A Channel Groups földrajzi vagy tematikus elv szerint is szervezhetők.
| Paraméter | Maximum | Megjegyzés |
|---|---|---|
| Csatornanév hossza | 92 karakter | Latin betűk, számok, -, _ |
| Feliratkozók csatornánként | 50 000 | Több — shardolni |
| Channel Groups | 2000 csoport / kulcs | Akár 500 csatorna csoportonként |
| Előzmények (storage) | Korlátlan | Fizetés a tárolási mennyiségért |
A PubNub integrációja regisztrációt, alkalmazás létrehozását az admin panelben és kulcskészlet beszerzését igényli. A PubNub könyvtárak elérhetők JavaScript, Swift, Kotlin, Java, Dart (Flutter), C#, Python, Ruby, Go és sok más nyelvhez. Nézzünk egy példát JavaScriptben böngészőhöz és Node.js-hez.
A PubNub dokumentáció (2025) szerint a pubnub-js könyvtár támogatja a CommonJS és az ES Module importálást is. Böngészőhöz az npm-en keresztüli telepítés, majd a webpack vagy vite segítségével történő bundling javasolt.
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('Új üzenet:', event.message);
},
presence: (event) => {
console.log('Jelenlét:', event.uuid, event.action);
}
});
pubnub.publish({
channel: 'chat-general',
message: { text: 'Hello everyone!', sender: 'user-100' }
});
pubnub.fetchMessages(
{ channels: ['chat-general'], count: 50 },
(status, response) => {
if (status.error) {
console.error('Hiba az előzmények lekérésekor', status);
return;
}
const messages = response.channels['chat-general'];
messages.forEach((msg) => {
console.log(msg.message, msg.timetoken);
});
}
);
PubNub Functions — serverless platform üzenetek feldolgozásához a PubNub oldalán. A függvények JavaScriptben íródnak és biztonságos elkülönített környezetben (V8 isolate) hajtódnak végre. Képesek az üzeneteket a feliratkozókhoz való kézbesítés előtt transzformálni, szűrni, pufferelni és átirányítani.
Stream Controller — beépített útválasztó mechanizmus, amely szabályok alapján kezeli az üzenetfolyamot. A szabályok meghatározzák, hogy mely üzenetek kerüljenek kézbesítésre, melyek eldobásra, és melyek irányításra a PubNub Functions felé feldolgozásra. A Stream Controller támogatja a feltételes útválasztást az üzenet tartalma, a csatorna típusa vagy a metaadatok alapján.
A PubNub blog (2024) szerint a PubNub Functions 40–60%-kal csökkentik a szerverinfrastruktúra költségeit az üzenetfeldolgozás során, mivel a szűrési és transzformációs logika a PubNub peremcsomópontjain hajtódik végre, nem a saját szerveren. A függvények hozzáférnek a HTTP-kérésekhez, a Key-Value tárolóhoz és más függvényekhez ugyanabban a térben.
PubNub SDK mobil platformokhoz elérhető iOS (Swift), Android (Kotlin/Java), Flutter (Dart) és React Native (JavaScript) rendszerekhez. A mobil SDK-k támogatják a teljes funkciókészletet: pub/sub, jelenlét, előzmények, PAM és PubNub Functions. A push értesítésekhez a PubNub az APNs és FCM rendszerekkel integrálódik egy speciális mobile push gateway mechanizmuson keresztül.
Optimalizálás mobil eszközökhöz magában foglalja az adaptív heartbeat-et, az üzenetek kötegelt feldolgozását és a háttérmódok támogatását. A PubNub SDK iOS-hez a Background Task API-t használja a kapcsolat fenntartásához, amikor az alkalmazás minimálisra van csökkentve (akár 30 másodperc szokásos háttéridő). Hosszabb háttérmunkához push értesítések használata szükséges.
Mobile Push Gateway — a push értesítések PubNubon keresztüli küldésének mechanizmusa. Amikor egy üzenetet közzétesznek egy csatornában, a PubNub automatikusan meghatározza, hogy mely feliratkozók vannak offline, és push értesítést küld nekik az APNs (iOS) vagy FCM (Android) rendszeren keresztül. A konfiguráció egyszer történik meg az admin panelben — ezt követően a csatorna összes üzenete automatikusan duplikálódik a push csatornába. A PubNub dokumentáció (2025) szerint a gateway másodpercenként akár 10 000 push értesítést is feldolgoz.
Gyakran Ismételt Kérdések
A PubNub több SDK-t (75+ platform), beépített serverless funkciókat és Stream Controller-t kínál az üzenetfeldolgozáshoz. A Pusher egyszerűbben beállítható, de a PubNub nagyobb vezérlést biztosít az útválasztás és az adat-transzformáció felett.
A PubNub az at-least-once mechanizmust használja automatikus újrapróbálkozással hiba esetén. Minden üzenet egyedi timetoken-nel rendelkezik a deduplikációhoz. Az üzenetek 30 másodpercig pufferelődnek az offline feliratkozók számára.
Az ingyenes terv 100 egyidejű kapcsolatot és havi 1 millió üzenetet tartalmaz. A fizetős tervek 49 $/hó ártól kezdődnek 1000 egyidejű kapcsolatért korlátlan üzenetszámmal.
Igen, a PubNub támogatja a TLS 1.3-at minden kapcsolathoz és opcionális end-to-end titkosítást a kliens oldalon (AES-256) kulcskezeléssel a PAM-on keresztül. Vállalati ügyfelek számára elérhető a Cipher Key mód.
A PubNub SDK-t biztosít 75+ platformhoz, beleértve a JavaScript, Swift, Kotlin, Java, Dart, C#, Python, Ruby, Go, C++, PHP, Rust és Objective-C nyelveket. Ez a legnagyobb ökoszisztéma a valós idejű szolgáltatások között.
Összefoglalá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