PubNub ist ein globales Netzwerk für Echtzeit-Messaging, das eine Infrastruktur zum Veröffentlichen und Abonnieren von Nachrichten über WebSocket mit minimaler Latenz bietet. Es ist für Anwendungen konzipiert, die eine zuverlässige Datenzustellung unter hoher Last und instabilen Verbindungen erfordern. Laut der offiziellen PubNub-Dokumentation (2025) verarbeitet die Plattform monatlich über 1 Billion Nachrichten für mehr als 70.000 Anwendungen weltweit.
Wichtige Punkte
PubNub ist ein globales Echtzeit-Datennetzwerk, das 2010 gegründet wurde. Es bietet eine API zum Veröffentlichen und Abonnieren von Nachrichten sowie zusätzliche Dienste: Verlaufsspeicherung, Anwesenheitsverwaltung, serverlose Funktionen (PubNub Functions) und Datenstromanalyse.
Die Architektur von PubNub basiert auf einem verteilten Netzwerk von Präsenzpunkten (POP), die in über 15 geografischen Regionen verteilt sind. Jeder Punkt enthält Caching-Broker, die Nachrichten zwischen Herausgebern und Abonnenten mit minimaler Latenz weiterleiten. PubNub verwendet keinen einzigen zentralen Broker — jede Region arbeitet unabhängig und synchronisiert sich über das globale Netzwerk.
Laut der offiziellen PubNub-Website (2025) bedient die Plattform über 70.000 Anwendungen in mehr als 200 Ländern. Zu den wichtigsten Kunden gehören Logitech (IoT-Geräteverwaltung), GoPro (Echtzeit-Videostreaming), eBay (Auktionssynchronisation) und Snapchat (Chat und Benachrichtigungen).
PubNub basiert auf drei Prinzipien: Geschwindigkeit (Latenz unter 10 ms im 95. Perzentil innerhalb einer Region), Zuverlässigkeit (at-least-once-Zustellgarantie mit automatischer Wiederholung) und Skalierbarkeit (horizontale Erweiterung ohne Begrenzung der Kanalanzahl). Die Plattform speichert Nachrichten nicht langfristig — der Verlauf ist über einen separat angeschlossenen Storage & Playback-Dienst verfügbar.
Das Betriebsmodell von PubNub basiert auf dem klassischen Publisher-Subscriber-Muster. Der Herausgeber-Client sendet eine Nachricht mit Angabe des Kanals über die PubNub REST API mit einem publish-Schlüssel. PubNub liefert die Nachricht an alle Abonnenten dieses Kanals über deren aktive WebSocket-Verbindungen. Die Abonnenten empfangen die Nachricht über einen im PubNub SDK registrierten Callback-Handler.
Die Transportschicht von PubNub verwendet WebSocket als primäres Protokoll, mit einem Fallback auf HTTP Long-Polling für Umgebungen mit Einschränkungen. Das SDK verwaltet die Verbindung automatisch: Aufbau, Aufrechterhaltung des Heartbeats (alle 15–60 Sekunden je nach Netzwerk) und erneute Verbindung bei Unterbrechung.
Jede Nachricht in PubNub enthält Metadaten: Absender-UUID, Zeitstempel, Sequenznummer (timetoken) und Flags (store, replicate, eatAfterRead). Timetoken ist eine eindeutige zeitbasierte PubNub-Kennung, die die globale Nachrichtenreihenfolge innerhalb eines Kanals garantiert. Laut PubNub-Dokumentation (2025) hat timetoken eine Auflösung von 10 Nanosekunden.
Wenn ein Client eine Nachricht veröffentlicht, durchläuft sie den Stream Controller — das Routing-Modul von PubNub. Der Stream Controller überprüft die Zugriffsrechte (PAM), wendet Transformationsregeln (PubNub Functions) an, bestimmt die Zielregionen und sendet die Nachricht an alle Abonnenten. Wenn ein Abonnent offline ist, wird die Nachricht standardmäßig 30 Sekunden lang gepuffert, während auf die Wiederherstellung der Verbindung gewartet wird.
Das Schlüsselsystem von PubNub trennt die Zugriffsrechte in drei Ebenen: publish-Schlüssel (nur Veröffentlichung), subscribe-Schlüssel (nur Abonnement) und secret-Schlüssel (Verwaltung). Jede Anwendung erhält bei der Registrierung einen Satz von drei Schlüsseln, aber der secret-Schlüssel wird niemals an den Client übermittelt — er wird nur auf der Serverseite verwendet.
Der publish-Schlüssel wird zum Senden von Nachrichten an Kanäle verwendet. Der subscribe-Schlüssel wird zum Abonnieren von Kanälen und Empfangen von Nachrichten verwendet. Der secret-Schlüssel wird für die Zugriffsverwaltung über PubNub Access Manager (PAM), die Erstellung temporärer Audience-Tokens und die Schlüsselverwaltung verwendet. Der secret-Schlüssel wird sicher auf dem Server aufbewahrt und niemals an Clients weitergegeben.
PubNub unterstützt mehrere Authentifizierungsmodi: per IP-Adresse (für Server), per secret-Schlüssel (für administrative Operationen), per temporäre Tokens (für Clients). Temporäre Tokens werden über PAM mit Einschränkungen hinsichtlich Gültigkeitsdauer, Kanälen und Berechtigungen (read, write, manage) ausgestellt.
PubNub-Kanäle sind benannte Nachrichtenrouten. Ein Kanalname ist eine Zeichenfolge von bis zu 92 Zeichen, die lateinische Buchstaben, Ziffern, Bindestriche und Unterstriche unterstützt. Kanäle werden bei der ersten Veröffentlichung oder dem ersten Abonnement dynamisch erstellt. PubNub unterstützt Kanalmuster durch das Zeichen * in Subscribe-Anfragen — dies ermöglicht das Abonnieren einer Gruppe von Kanälen (z. B. user-*).
Channel Groups ist ein Mechanismus zum Gruppieren von Kanälen für Massenabonnements. Anstatt 50 einzelne Kanäle zu abonnieren, abonniert der Client eine Gruppe, und alle Nachrichten aus den darin enthaltenen Kanälen werden automatisch an den Client zugestellt. Channel Groups unterstützen Verschachtelung, aber die Tiefe sollte 3 Ebenen nicht überschreiten.
Laut PubNub Technischer Dokumentation (2025) beträgt die maximale Anzahl von Abonnenten pro Kanal 50.000. Für höhere Lasten wird empfohlen, Kanäle mit Präfixen zu verwenden und die Zielgruppe zu sharden (z. B. chat-room-001, chat-room-002). Channel Groups können auch nach geografischen oder thematischen Prinzipien organisiert werden.
| Parameter | Maximum | Hinweis |
|---|---|---|
| Kanallänge | 92 Zeichen | Lateinische Buchstaben, Ziffern, -, _ |
| Abonnenten pro Kanal | 50.000 | Höher — sharden |
| Channel Groups | 2.000 Gruppen / Schlüssel | Bis zu 500 Kanäle pro Gruppe |
| Verlauf (Speicher) | Unbegrenzt | Bezahlung pro Speichervolumen |
PubNub-Integration erfordert Registrierung, Erstellung einer Anwendung im Admin-Panel und Erhalt eines Schlüsselsatzes. PubNub-Bibliotheken sind für JavaScript, Swift, Kotlin, Java, Dart (Flutter), C#, Python, Ruby, Go und viele andere Sprachen verfügbar. Sehen wir uns ein Beispiel in JavaScript für Browser und Node.js an.
Laut PubNub-Dokumentation (2025) unterstützt die Bibliothek pubnub-js sowohl CommonJS- als auch ES-Modul-Importe. Für den Browser wird empfohlen, den npm-Build zu verwenden, gefolgt von Bundling über webpack oder Vite.
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('Neue Nachricht:', event.message);
},
presence: (event) => {
console.log('Anwesenheit:', 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('Fehler beim Abrufen des Verlaufs', status);
return;
}
const messages = response.channels['chat-general'];
messages.forEach((msg) => {
console.log(msg.message, msg.timetoken);
});
}
);
PubNub Functions ist eine serverlose Plattform zur Verarbeitung von Nachrichten auf der PubNub-Seite. Funktionen werden in JavaScript geschrieben und in einer sicheren isolierten Umgebung (V8-Isolat) ausgeführt. Sie können Nachrichten transformieren, filtern, puffern und umleiten, bevor sie an Abonnenten zugestellt werden.
Stream Controller ist ein integrierter Routing-Mechanismus, der den Nachrichtenfluss basierend auf Regeln verwaltet. Regeln legen fest, welche Nachrichten zugestellt, welche verworfen und welche zur Verarbeitung an PubNub Functions gesendet werden. Stream Controller unterstützt bedingtes Routing nach Nachrichteninhalt, Kanaltyp oder Metadaten.
Laut PubNub-Blog (2024) reduzieren PubNub Functions die Serverinfrastrukturkosten für die Nachrichtenverarbeitung um 40–60 %, indem Filter- und Transformationslogik auf PubNub-Edge-Knoten ausgelagert wird, anstatt auf Ihrem eigenen Server. Funktionen haben Zugriff auf HTTP-Anfragen, Key-Value-Speicher und andere Funktionen im selben Raum.
PubNub SDK für mobile Plattformen ist für iOS (Swift), Android (Kotlin/Java), Flutter (Dart) und React Native (JavaScript) verfügbar. Mobile SDKs unterstützen die gesamte Funktionspalette: Pub/Sub, Anwesenheit, Verlauf, PAM und PubNub Functions. Für Push-Benachrichtigungen integriert sich PubNub über einen speziellen Mobile Push Gateway-Mechanismus mit APNs und FCM.
Optimierung für mobile Geräte umfasst adaptiven Heartbeat, Batch-Nachrichtenverarbeitung und Unterstützung für Hintergrundmodi. Das PubNub SDK für iOS verwendet die Background Task API, um die Verbindung bei minimierter App aufrechtzuerhalten (bis zu 30 Sekunden Standard-Hintergrundzeit). Für längere Hintergrundoperationen sind Push-Benachrichtigungen erforderlich.
Mobile Push Gateway ist ein Mechanismus zum Senden von Push-Benachrichtigungen über PubNub. Wenn eine Nachricht in einem Kanal veröffentlicht wird, ermittelt PubNub automatisch, welche Abonnenten offline sind, und sendet ihnen eine Push-Benachrichtigung über APNs (iOS) oder FCM (Android). Die Konfiguration wird einmal im Admin-Panel durchgeführt — danach werden alle Nachrichten aus dem Kanal automatisch in den Push-Kanal dupliziert. Laut PubNub-Dokumentation (2025) verarbeitet das Gateway bis zu 10.000 Push-Benachrichtigungen pro Sekunde.
Häufig gestellte Fragen
PubNub bietet mehr SDKs (über 75 Plattformen), integrierte serverlose Funktionen und Stream Controller zur Nachrichtenverarbeitung. Pusher ist einfacher einzurichten, aber PubNub bietet mehr Kontrolle über Routing und Datentransformation.
PubNub verwendet einen at-least-once-Mechanismus mit automatischer Wiederholung bei Fehlern. Jede Nachricht hat einen eindeutigen Timetoken zur Deduplizierung. Nachrichten werden 30 Sekunden lang für Offline-Abonnenten gepuffert.
Der kostenlose Plan umfasst 100 gleichzeitige Verbindungen und 1 Million Nachrichten pro Monat. Kostenpflichtige Pläne beginnen bei 49 $/Monat für 1.000 gleichzeitige Verbindungen mit unbegrenzten Nachrichten.
Ja, PubNub unterstützt TLS 1.3 für alle Verbindungen und optionale Ende-zu-Ende-Client-Verschlüsselung (AES-256) mit Schlüsselverwaltung über PAM. Der Cipher-Key-Modus ist für Enterprise-Kunden verfügbar.
PubNub bietet SDKs für über 75 Plattformen, darunter JavaScript, Swift, Kotlin, Java, Dart, C#, Python, Ruby, Go, C++, PHP, Rust und Objective-C. Dies ist das größte Ökosystem unter den Echtzeitdiensten.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch