PubNub — een wereldwijd netwerk voor real-time messaging dat infrastructuur biedt voor het publiceren en abonneren op berichten via WebSocket met minimale vertraging. Het is gericht op applicaties die betrouwbare gegevenslevering vereisen bij hoge belasting en onstabiele verbindingen. Volgens de officiële PubNub-documentatie (2025) verwerkt het platform maandelijks meer dan 1 biljoen berichten voor 70 000+ applicaties wereldwijd.
Belangrijkste punten
PubNub — een wereldwijd real-time gegevensoverdrachtnetwerk, opgericht in 2010. Het biedt API voor het publiceren en abonneren op berichten, evenals aanvullende diensten: geschiedenisopslag, aanwezigheidsbeheer, serverless functies (PubNub Functions) en data-stroomanalyse.
De architectuur van PubNub is gebaseerd op een gedistribueerd netwerk van aanwezigheidspunten (POP) in 15+ geografische regio's. Elk punt bevat cache-brokers die berichten tussen uitgevers en abonnees routeren met minimale vertraging. PubNub gebruikt geen enkele centrale broker — elke regio werkt onafhankelijk en synchroniseert via het wereldwijde netwerk.
Volgens de officiële website van PubNub (2025) bedient het platform meer dan 70 000 applicaties in 200+ landen. Tot de belangrijkste klanten behoren Logitech (beheer van IoT-apparaten), GoPro (real-time videostreaming), eBay (synchronisatie van veilingen) en Snapchat (chat en meldingen).
PubNub is gebouwd op drie principes: snelheid (latentie minder dan 10 ms in het 95e percentiel binnen één regio), betrouwbaarheid (garantie van levering at-least-once met automatische herhaling) en schaalbaarheid (horizontale uitbreiding zonder beperking van het aantal kanalen). Het platform slaat berichten niet op in langdurige opslag — geschiedenis is toegankelijk via de afzonderlijk aangesloten Storage & Playback-service.
Het werkingsmodel van PubNub is gebaseerd op het klassieke publish-subscribe patroon. De uitgeverclient verzendt een bericht met vermelding van het kanaal via de PubNub REST API met de publish-sleutel. PubNub levert het bericht aan alle abonnees van dit kanaal via hun actieve WebSocket-verbindingen. Abonnees ontvangen het bericht via een callback-handler die is geregistreerd in de PubNub SDK.
De transportlaag van PubNub gebruikt WebSocket als primair protocol, met fallback naar HTTP long-polling voor omgevingen met beperkingen. De SDK beheert automatisch de verbinding: opzetten, heartbeat onderhouden (elke 15–60 seconden afhankelijk van het netwerk) en opnieuw verbinden bij onderbreking.
Elk bericht in PubNub bevat metadata: UUID van de afzender, tijdstempel, volgnummer (timetoken) en vlaggen (store, replicate, eatAfterRead). Timetoken — een unieke, op tijd gebaseerde PubNub-identificatie die de wereldwijde volgorde van berichten in het kanaal garandeert. Volgens de PubNub-documentatie (2025) heeft timetoken een resolutie van 10 nanoseconden.
Wanneer een client een bericht publiceert, gaat het door de Stream Controller — de routeringsmodule van PubNub. De Stream Controller controleert toegangsrechten (PAM), past transformatieregels (PubNub Functions) toe, bepaalt doelregio's en verzendt het bericht naar alle abonnees. Als een abonnee is losgekoppeld, wordt het bericht 30 seconden (standaard) gebufferd in afwachting van herstel van de verbinding.
Het sleutelsysteem van PubNub verdeelt toegangsrechten in drie niveaus: publish-sleutel (alleen publiceren), subscribe-sleutel (alleen abonneren) en secret-sleutel (beheer). Elke applicatie ontvangt een set van drie sleutels bij registratie, maar de secret-sleutel wordt nooit naar de client gestuurd — deze wordt alleen aan de serverzijde gebruikt.
De publish-sleutel wordt gebruikt voor het verzenden van berichten naar kanalen. De subscribe-sleutel — voor het abonneren op kanalen en het ontvangen van berichten. De secret-sleutel — voor het beheren van toegang via PubNub Access Manager (PAM), het maken van tijdelijke publiekstokens en het beheren van sleutels. De secret-sleutel wordt veilig opgeslagen op de server en wordt nooit aan clients bekendgemaakt.
PubNub ondersteunt meerdere authenticatiemodi: op IP-adres (voor servers), op geheime sleutel (voor administratieve handelingen), op tijdelijke tokens (voor clients). Tijdelijke tokens worden via PAM uitgegeven met beperkingen op tijd, kanalen en rechten (read, write, manage).
PubNub-kanalen — benoemde routes voor berichten. De kanaalnaam is een string van maximaal 92 tekens, die Latijnse letters, cijfers, koppeltekens en underscores ondersteunt. Kanalen worden dynamisch aangemaakt bij de eerste publicatie of abonnering. PubNub ondersteunt kanaalpatronen via het symbool * in het subscribe-verzoek — dit maakt abonnering op een groep kanalen mogelijk (bijv. user-*).
Channel Groups — een mechanisme voor het groeperen van kanalen voor massa-abonnering. In plaats van te abonneren op 50 afzonderlijke kanalen, abonneert de client zich op één groep en worden alle berichten uit de kanalen in de groep automatisch aan de client geleverd. Channel Groups ondersteunen nesting, maar de diepte mag niet meer dan 3 niveaus zijn.
Volgens de technische documentatie van PubNub (2025) is het maximale aantal abonnees per kanaal 50 000. Voor hogere belastingen wordt het gebruik van kanalen met voorvoegsels en het sharden van het publiek aanbevolen (bijv. chat-room-001, chat-room-002). Channel Groups kunnen ook worden georganiseerd volgens geografisch of thematisch principe.
| Parameter | Maximum | Opmerking |
|---|---|---|
| Lengte kanaalnaam | 92 tekens | Latijnse letters, cijfers, -, _ |
| Abonnees per kanaal | 50 000 | Meer — sharden |
| Channel Groups | 2000 groepen / sleutel | Tot 500 kanalen per groep |
| Geschiedenis (storage) | Onbeperkt | Betaling per opslagvolume |
PubNub-integratie vereist registratie, het aanmaken van een applicatie in het beheerpaneel en het verkrijgen van een set sleutels. PubNub-bibliotheken zijn beschikbaar voor JavaScript, Swift, Kotlin, Java, Dart (Flutter), C#, Python, Ruby, Go en vele andere talen. Laten we een voorbeeld in JavaScript voor de browser en Node.js bekijken.
Volgens de PubNub-documentatie (2025) ondersteunt de pubnub-js-bibliotheek zowel CommonJS als ES Module import. Voor de browser wordt installatie via npm gevolgd door bundling via webpack of vite aanbevolen.
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('Nieuw bericht:', event.message);
},
presence: (event) => {
console.log('Aanwezigheid:', 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('Fout bij ophalen geschiedenis', status);
return;
}
const messages = response.channels['chat-general'];
messages.forEach((msg) => {
console.log(msg.message, msg.timetoken);
});
}
);
PubNub Functions — een serverless platform voor het verwerken van berichten aan de PubNub-zijde. Functies worden geschreven in JavaScript en uitgevoerd in een veilige geïsoleerde omgeving (V8 isolate). Ze kunnen berichten transformeren, filteren, bufferen en omleiden voordat ze aan abonnees worden geleverd.
Stream Controller — een ingebouwd routeringsmechanisme dat de berichtenstroom beheert op basis van regels. Regels bepalen welke berichten worden geleverd, welke worden genegeerd en welke naar PubNub Functions worden gestuurd voor verwerking. Stream Controller ondersteunt conditionele routering op basis van berichtinhoud, kanaaltype of metadata.
Volgens de PubNub-blog (2024) verminderen PubNub Functions de serverinfrastructuurkosten voor berichtverwerking met 40–60% doordat de filter- en transformatielogica wordt uitgevoerd op de edge-nodes van PubNub, niet op de eigen server. Functies hebben toegang tot HTTP-verzoeken, Key-Value-opslag en andere functies in dezelfde ruimte.
PubNub SDK voor mobiele platforms zijn beschikbaar voor iOS (Swift), Android (Kotlin/Java), Flutter (Dart) en React Native (JavaScript). Mobiele SDK's ondersteunen de volledige functieset: pub/sub, aanwezigheid, geschiedenis, PAM en PubNub Functions. Voor pushmeldingen integreert PubNub met APNs en FCM via een speciaal mechanisme voor mobile push gateway.
Optimalisatie voor mobiele apparaten omvat adaptieve heartbeat, batchverwerking van berichten en ondersteuning voor achtergrondmodi. De PubNub SDK voor iOS gebruikt de Background Task API om de verbinding te behouden wanneer de app is geminimaliseerd (tot 30 seconden standaard achtergrondtijd). Voor langere achtergrondwerking is het gebruik van pushmeldingen vereist.
Mobile Push Gateway — een mechanisme voor het verzenden van pushmeldingen via PubNub. Wanneer een bericht in een kanaal wordt gepubliceerd, bepaalt PubNub automatisch welke abonnees offline zijn en stuurt hen een pushmelding via APNs (iOS) of FCM (Android). Configuratie wordt eenmalig uitgevoerd in het beheerpaneel — daarna worden alle berichten uit het kanaal automatisch gedupliceerd naar het push-kanaal. Volgens de PubNub-documentatie (2025) verwerkt de gateway tot 10 000 pushmeldingen per seconde.
Veelgestelde vragen
PubNub biedt meer SDK's (75+ platforms), ingebouwde serverless functies en Stream Controller voor berichtverwerking. Pusher is eenvoudiger in te stellen, maar PubNub geeft meer controle over routering en datatransformatie.
PubNub gebruikt het at-least-once mechanisme met automatische herhaling bij fouten. Elk bericht heeft een unieke timetoken voor deduplicatie. Berichten worden 30 seconden gebufferd voor offline abonnees.
Het gratis plan omvat 100 gelijktijdige verbindingen en 1 miljoen berichten per maand. Betaalde plannen beginnen bij $49/maand voor 1000 gelijktijdige verbindingen met onbeperkt aantal berichten.
Ja, PubNub ondersteunt TLS 1.3 voor alle verbindingen en optionele end-to-end versleuteling aan de clientzijde (AES-256) met sleutelbeheer via PAM. Voor enterprise-klanten is de Cipher Key-modus beschikbaar.
PubNub biedt SDK's voor 75+ platforms, waaronder JavaScript, Swift, Kotlin, Java, Dart, C#, Python, Ruby, Go, C++, PHP, Rust en Objective-C. Dit is het grootste ecosysteem onder real-time diensten.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook