PubNub — vad är det, SDK i realtid och hur det fungerar i applikationer

Författare: IT Sectr Publicerad: 2026-06-02 Lästid: 8 min

PubNub — ett globalt nätverk för meddelandehantering i realtid som tillhandahåller infrastruktur för publicering och prenumeration på meddelanden via WebSocket med minimal fördröjning. Det är avsett för applikationer som kräver tillförlitlig dataleverans under hög belastning och instabil anslutning. Enligt officiell PubNub-dokumentation (2025) behandlar plattformen över 1 biljon meddelanden varje månad för 70 000+ applikationer världen över.

Huvudpunkter

  • PubNub — globalt nätverk för meddelanden i realtid med 15+ datacenter och garanterad leverans.
  • Pub/Sub med nycklar — publicering och prenumeration via publish/subscribe-nycklar med separering av åtkomsträttigheter.
  • Stream Controller — hantering av meddelandeströmmar med stöd för filtrering, transformering och buffring.
  • Presence — spårning av onlinestatus för kanaldeltagare med detektering via tidsgräns.
  • SDK för 75+ plattformar — det största ekosystemet av klientbibliotek bland realtidstjänster.

Vad är PubNub?

PubNub — ett globalt nätverk för dataöverföring i realtid, grundat 2010. Det tillhandahåller API för publicering och prenumeration på meddelanden, samt ytterligare tjänster: lagring av historik, hantering av närvaro, serverlösa funktioner (PubNub Functions) och analys av dataströmmar.

PubNubs arkitektur är baserad på ett distribuerat nätverk av närvaropunkter (POP) belägna i 15+ geografiska regioner. Varje punkt innehåller cachningsmäklare som dirigerar meddelanden mellan utgivare och prenumeranter med minimal fördröjning. PubNub använder inte en enda central mäklare — varje region fungerar oberoende och synkroniseras via det globala nätverket.

Enligt PubNubs officiella webbplats (2025) betjänar plattformen över 70 000 applikationer i 200+ länder. Bland nyckelkunderna finns Logitech (hantering av IoT-enheter), GoPro (videoströmning i realtid), eBay (synkronisering av auktioner) och Snapchat (chatt och aviseringar).

PubNubs viktigaste principer

PubNub är byggd på tre principer: hastighet (fördröjning mindre än 10 ms i 95:e percentilen inom en region), tillförlitlighet (garanti för leverans at-least-once med automatisk återförsök) och skalbarhet (horisontell expansion utan begränsning av antalet kanaler). Plattformen lagrar inte meddelanden i långtidslagring — historik är tillgänglig via den separat anslutna Storage & Playback-tjänsten.

Hur PubNub fungerar

PubNubs arbetsmodell är baserad på det klassiska publish-subscribe-mönstret. Utgivarklienten skickar ett meddelande med angivelse av kanal via PubNub REST API med publish-nyckeln. PubNub levererar meddelandet till alla prenumeranter på denna kanal via deras aktiva WebSocket-anslutningar. Prenumeranterna tar emot meddelandet via en callback-hanterare registrerad i PubNub SDK.

Transportskiktet PubNub använder WebSocket som huvudprotokoll, med reserv till HTTP long-polling för miljöer med begränsningar. SDK hanterar automatiskt anslutningen: upprättar, upprätthåller heartbeat (var 15–60:e sekund beroende på nätverk) och återansluter vid avbrott.

Varje meddelande i PubNub innehåller metadata: avsändarens UUID, tidsstämpel, ordningsnummer (timetoken) och flaggor (store, replicate, eatAfterRead). Timetoken — en unik, tidsbaserad PubNub-identifierare som garanterar global ordning av meddelanden i kanalen. Enligt PubNub-dokumentationen (2025) har timetoken en upplösning på 10 nanosekunder.

Meddelandeflöde

När en klient publicerar ett meddelande går det genom Stream Controller — PubNubs routingmodul. Stream Controller kontrollerar åtkomsträttigheter (PAM), tillämpar transformeringsregler (PubNub Functions), bestämmer målregioner och skickar meddelandet till alla prenumeranter. Om en prenumerant är frånkopplad buffras meddelandet i 30 sekunder (standard) i väntan på återställning av anslutningen.

PubNub-nycklar: publish, subscribe, secret

PubNubs nyckelsystem delar upp åtkomsträttigheterna i tre nivåer: publish-nyckel (endast publicering), subscribe-nyckel (endast prenumeration) och secret-nyckel (administration). Varje applikation får en uppsättning av tre nycklar vid registrering, men secret-nyckeln skickas aldrig till klienten — den används endast på serversidan.

Publish-nyckeln används för att skicka meddelanden till kanaler. Subscribe-nyckeln — för att prenumerera på kanaler och ta emot meddelanden. Secret-nyckeln — för att hantera åtkomst via PubNub Access Manager (PAM), skapa tillfälliga målgruppstoken och hantera nycklar. Secret-nyckeln lagras säkert på servern och avslöjas aldrig för klienter.

PubNub stöder flera autentiseringslägen: efter IP-adress (för servrar), efter hemlig nyckel (för administrativa operationer), efter tillfälliga token (för klienter). Tillfälliga token utfärdas via PAM med begränsning av tid, kanaler och rättigheter (read, write, manage).

PubNub-kanaler

PubNub-kanaler — namngivna vägar för meddelanden. Kanalnamnet är en sträng på upp till 92 tecken som stöder latinska bokstäver, siffror, bindestreck och understreck. Kanaler skapas dynamiskt vid första publicering eller prenumeration. PubNub stöder kanalmönster via symbolen * i subscribe-förfrågan — detta möjliggör prenumeration på en grupp kanaler (t.ex. user-*).

Channel Groups — en mekanism för att gruppera kanaler för massprenumeration. Istället för att prenumerera på 50 separata kanaler prenumererar klienten på en grupp, och alla meddelanden från kanalerna i gruppen levereras automatiskt till klienten. Channel Groups stöder nästling, men djupet bör inte överstiga 3 nivåer.

Enligt PubNubs tekniska dokumentation (2025) är det maximala antalet prenumeranter per kanal 50 000. För högre belastning rekommenderas användning av kanaler med prefix och shardning av målgruppen (t.ex. chat-room-001, chat-room-002). Channel Groups kan också organiseras enligt geografisk eller tematisk princip.

ParameterMaximumAnmärkning
Längd på kanalnamn92 teckenLatinska bokstäver, siffror, -, _
Prenumeranter per kanal50 000Mer — sharda
Channel Groups2000 grupper / nyckelUpp till 500 kanaler per grupp
Historik (storage)ObegränsatBetalning per lagringsvolym

Hur man använder PubNub i ett projekt

PubNub-integration kräver registrering, skapande av en applikation i adminpanelen och hämtning av en uppsättning nycklar. PubNub-bibliotek finns tillgängliga för JavaScript, Swift, Kotlin, Java, Dart (Flutter), C#, Python, Ruby, Go och många andra språk. Låt oss titta på ett exempel i JavaScript för webbläsare och Node.js.

Enligt PubNub-dokumentationen (2025) stöder pubnub-js-biblioteket både CommonJS och ES Module-import. För webbläsare rekommenderas installation via npm följt av bundling via webpack eller vite.

Prenumerera på en kanal

js
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('Nytt meddelande:', event.message);
    },
    presence: (event) => {
        console.log('Närvaro:', event.uuid, event.action);
    }
});

pubnub.publish({
    channel: 'chat-general',
    message: { text: 'Hello everyone!', sender: 'user-100' }
});

Hämta meddelandehistorik

js
pubnub.fetchMessages(
    { channels: ['chat-general'], count: 50 },
    (status, response) => {
        if (status.error) {
            console.error('Fel vid hämtning av historik', status);
            return;
        }
        const messages = response.channels['chat-general'];
        messages.forEach((msg) => {
            console.log(msg.message, msg.timetoken);
        });
    }
);

PubNub Functions och Stream Controller

PubNub Functions — serverlös plattform för att bearbeta meddelanden på PubNub-sidan. Funktioner skrivs i JavaScript och utförs i en säker isolerad miljö (V8 isolate). De kan transformera, filtrera, buffra och omdirigera meddelanden innan de levereras till prenumeranter.

Stream Controller — inbyggd routingsmekanism som hanterar meddelandeströmmen baserat på regler. Reglerna bestämmer vilka meddelanden som levereras, vilka som kasseras och vilka som dirigeras till PubNub Functions för bearbetning. Stream Controller stöder villkorlig routing baserat på meddelandeinnehåll, kanaltyp eller metadata.

Enligt PubNub-bloggen (2024) minskar PubNub Functions serverinfrastrukturkostnaderna för meddelandebearbetning med 40–60% tack vare att filtrerings- och transformeringslogiken utförs på PubNubs kantnoder, inte på den egna servern. Funktioner har tillgång till HTTP-förfrågningar, Key-Value-lagring och andra funktioner i samma utrymme.

PubNub i mobila applikationer

PubNub SDK för mobila plattformar finns tillgängliga för iOS (Swift), Android (Kotlin/Java), Flutter (Dart) och React Native (JavaScript). Mobila SDK:er stöder den fulla funktionsuppsättningen: pub/sub, närvaro, historik, PAM och PubNub Functions. För push-meddelanden integrerar PubNub med APNs och FCM via en särskild mobil push-gateway-mekanism.

Optimering för mobila enheter inkluderar adaptiv heartbeat, batchbearbetning av meddelanden och stöd för bakgrundslägen. PubNub SDK för iOS använder Background Task API för att upprätthålla anslutningen när appen är minimerad (upp till 30 sekunders standardbakgrundstid). För längre bakgrundsarbete krävs användning av push-meddelanden.

Mobile Push Gateway — en mekanism för att skicka push-meddelanden via PubNub. När ett meddelande publiceras i en kanal bestämmer PubNub automatiskt vilka prenumeranter som är offline och skickar ett push-meddelande till dem via APNs (iOS) eller FCM (Android). Konfiguration görs en gång i adminpanelen — därefter dupliceras alla meddelanden från kanalen automatiskt till push-kanalen. Enligt PubNub-dokumentationen (2025) bearbetar gatewayen upp till 10 000 push-meddelanden per sekund.

Vanliga frågor

Vad skiljer PubNub från Pusher?

PubNub erbjuder fler SDK:er (75+ plattformar), inbyggda serverlösa funktioner och Stream Controller för meddelandebearbetning. Pusher är enklare att konfigurera, men PubNub ger mer kontroll över routing och datatransformering.

Hur garanterar PubNub leverans av meddelanden?

PubNub använder at-least-once-mekanismen med automatisk återförsök vid fel. Varje meddelande har en unik timetoken för deduplicering. Meddelanden buffras i 30 sekunder för offline-prenumeranter.

Hur mycket kostar PubNub?

Den kostnadsfria planen omfattar 100 samtidiga anslutningar och 1 miljon meddelanden per månad. Betalda planer börjar från $49/månad för 1000 samtidiga anslutningar med obegränsat antal meddelanden.

Stöder PubNub kryptering?

Ja, PubNub stöder TLS 1.3 för alla anslutningar och valfri end-to-end-kryptering på klientsidan (AES-256) med nyckelhantering via PAM. För företagskunder finns Cipher Key-läget tillgängligt.

Vilka språk stöder PubNub SDK?

PubNub tillhandahåller SDK för 75+ plattformar, inklusive JavaScript, Swift, Kotlin, Java, Dart, C#, Python, Ruby, Go, C++, PHP, Rust och Objective-C. Detta är det största ekosystemet bland realtidstjänster.

Sammanfattning

  • PubNub — globalt realtidsmeddelandenätverk med 15+ datacenter och stöd för 75+ plattformar.
  • Nyckelsystemet publish/subscribe/secret + PAM ger flexibel hantering av åtkomsträttigheter.
  • PubNub Functions möjliggör serverlös meddelandebearbetning utan egen serverinfrastruktur.
  • Stream Controller hanterar routing, filtrering och transformering av meddelanden på nätverkets kantnoder.
  • Mobile Push Gateway skickar automatiskt push via APNs och FCM för offline-prenumeranter.
  • Kanaler stöder upp till 50 000 prenumeranter och Channel Groups förenklar hanteringen av flera kanaler.
  • För projekt med brett plattformsstöd och inbyggd meddelandebearbetning, välj PubNub; för enklare scenarier räcker Pusher.

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också