PubNub — ano ito, real-time SDK at kung paano ito gumagana sa mga aplikasyon

May-akda: IT Sectr Nai-publish: 2026-06-02 Oras ng pagbabasa: 8 min

PubNub — isang pandaigdigang network para sa real-time na pagmemensahe, na nagbibigay ng imprastraktura para sa pag-publish at pag-subscribe sa mga mensahe sa pamamagitan ng WebSocket na may minimal na latency. Ito ay nakatuon sa mga application na nangangailangan ng maaasahang paghahatid ng data sa ilalim ng mataas na pagkarga at hindi matatag na koneksyon. Ayon sa opisyal na dokumentasyon ng PubNub (2025), pinoproseso ng platform ang higit sa 1 trilyong mensahe buwan-buwan para sa 70 000+ mga application sa buong mundo.

Mga Pangunahing Punto

  • PubNub — pandaigdigang network para sa real-time na mga mensahe na may 15+ data center at garantisadong paghahatid.
  • Pub/Sub gamit ang mga key — pag-publish at pag-subscribe sa pamamagitan ng publish/subscribe key na may paghihiwalay ng mga karapatan sa pag-access.
  • Stream Controller — pamamahala ng daloy ng mensahe na may suporta para sa pagsala, pagbabago at pag-buffer.
  • Presence — pagsubaybay sa online status ng mga kalahok sa channel na may detection sa pamamagitan ng timeout.
  • SDK para sa 75+ platform — pinakamalaking ecosystem ng mga client library sa mga real-time na serbisyo.

Ano ang PubNub?

PubNub — isang pandaigdigang network ng paghahatid ng data sa real-time, na itinatag noong 2010. Nagbibigay ito ng API para sa pag-publish at pag-subscribe sa mga mensahe, pati na rin ang mga karagdagang serbisyo: pag-iimbak ng kasaysayan, pamamahala ng presensya, serverless function (PubNub Functions) at analytics ng daloy ng data.

Ang arkitektura ng PubNub ay batay sa isang distributed network ng mga point of presence (POP) na matatagpuan sa 15+ heograpikal na rehiyon. Ang bawat punto ay naglalaman ng mga caching broker na nagruruta ng mga mensahe sa pagitan ng mga publisher at subscriber na may minimal na latency. Ang PubNub ay hindi gumagamit ng isang sentral na broker — bawat rehiyon ay gumagana nang nakapag-iisa at nagsi-sync sa pamamagitan ng pandaigdigang network.

Ayon sa opisyal na website ng PubNub (2025), ang platform ay naglilingkod sa mahigit 70 000 application sa 200+ bansa. Kabilang sa mga pangunahing kliyente ang Logitech (pamamahala ng mga IoT device), GoPro (real-time na video streaming), eBay (pag-sync ng auction) at Snapchat (chat at mga notification).

Mga Pangunahing Prinsipyo ng PubNub

Ang PubNub ay binuo sa tatlong prinsipyo: bilis (latency na mas mababa sa 10 ms sa 95th percentile sa loob ng isang rehiyon), pagiging maaasahan (garantiya ng paghahatid at-least-once na may awtomatikong pagsubok muli) at scalability (pahalang na pagpapalawak nang walang limitasyon sa bilang ng mga channel). Hindi iniimbak ng platform ang mga mensahe sa pangmatagalang imbakan — ang kasaysayan ay naa-access sa pamamagitan ng hiwalay na konektadong serbisyo ng Storage & Playback.

Paano gumagana ang PubNub

Ang modelo ng pagpapatakbo ng PubNub ay batay sa klasikong publish-subscribe pattern. Ang publisher client ay nagpapadala ng mensahe na may tinutukoy na channel sa pamamagitan ng PubNub REST API gamit ang publish key. Inihahatid ng PubNub ang mensahe sa lahat ng subscriber ng channel na ito sa pamamagitan ng kanilang aktibong WebSocket na koneksyon. Natatanggap ng mga subscriber ang mensahe sa pamamagitan ng callback handler na naka-rehistro sa PubNub SDK.

Ang transport layer ng PubNub ay gumagamit ng WebSocket bilang pangunahing protocol, na may fallback sa HTTP long-polling para sa mga kapaligirang may limitasyon. Awtomatikong pinamamahalaan ng SDK ang koneksyon: nagtatatag, nagpapanatili ng heartbeat (bawat 15–60 segundo depende sa network) at muling kumokonekta kapag naputol.

Ang bawat mensahe sa PubNub ay naglalaman ng metadata: UUID ng nagpadala, timestamp, sequence number (timetoken) at mga flag (store, replicate, eatAfterRead). Timetoken — isang natatanging identifier ng PubNub na batay sa oras, na ginagarantiyahan ang pandaigdigang pagkakasunud-sunod ng mga mensahe sa channel. Ayon sa dokumentasyon ng PubNub (2025), ang timetoken ay may resolution na 10 nanosecond.

Daloy ng Mensahe

Kapag ang isang client ay nag-publish ng mensahe, ito ay dumadaan sa Stream Controller — ang routing module ng PubNub. Sinusuri ng Stream Controller ang mga karapatan sa pag-access (PAM), inilalapat ang mga patakaran sa pagbabago (PubNub Functions), tinutukoy ang target na mga rehiyon at ipinapadala ang mensahe sa lahat ng subscriber. Kung ang isang subscriber ay nadiskonekta, ang mensahe ay iba-buffer sa loob ng 30 segundo (default) habang naghihintay na maibalik ang koneksyon.

Mga key ng PubNub: publish, subscribe, secret

Ang sistema ng key ng PubNub ay naghahati ng mga karapatan sa pag-access sa tatlong antas: publish key (pag-publish lamang), subscribe key (pag-subscribe lamang) at secret key (administrasyon). Ang bawat application ay tumatanggap ng set ng tatlong key sa pagpaparehistro, ngunit ang secret key ay hindi kailanman ipinapadala sa client — ito ay ginagamit lamang sa bahagi ng server.

Ang publish key ay ginagamit para sa pagpapadala ng mga mensahe sa mga channel. Ang subscribe key — para sa pag-subscribe sa mga channel at pagtanggap ng mga mensahe. Ang secret key — para sa pamamahala ng pag-access sa pamamagitan ng PubNub Access Manager (PAM), paggawa ng mga pansamantalang token ng audience at pamamahala ng mga key. Ang secret key ay ligtas na naka-imbak sa server at hindi kailanman isinasagawa sa mga client.

Sinusuportahan ng PubNub ang maraming mode ng authentication: ayon sa IP address (para sa mga server), ayon sa secret key (para sa mga administratibong operasyon), ayon sa pansamantalang token (para sa mga client). Ang mga pansamantalang token ay ibinibigay sa pamamagitan ng PAM na may limitasyon sa oras, channel at mga karapatan (read, write, manage).

Mga channel ng PubNub

Mga channel ng PubNub — pinangalanang mga ruta para sa mga mensahe. Ang pangalan ng channel ay isang string hanggang 92 character, sumusuporta sa mga Latin na titik, numero, gitling at underscore. Ang mga channel ay dynamic na nilikha sa unang pag-publish o pag-subscribe. Sinusuportahan ng PubNub ang mga pattern ng channel sa pamamagitan ng simbolo * sa subscribe request — ito ay nagpapahintulot sa pag-subscribe sa isang grupo ng mga channel (hal., user-*).

Channel Groups — mekanismo ng pagpapangkat ng mga channel para sa malawakang pag-subscribe. Sa halip na mag-subscribe sa 50 magkakahiwalay na channel, ang client ay nag-subscribe sa isang grupo, at lahat ng mensahe mula sa mga channel na kasama dito ay awtomatikong ihahatid sa client. Sinusuportahan ng Channel Groups ang nesting, ngunit ang lalim ay hindi dapat lumampas sa 3 antas.

Ayon sa teknikal na dokumentasyon ng PubNub (2025), ang maximum na bilang ng mga subscriber sa isang channel ay 50 000. Para sa mas mataas na karga, inirerekomenda ang paggamit ng mga channel na may prefix at pag-shard ng audience (hal., chat-room-001, chat-room-002). Ang Channel Groups ay maaari ding ayusin ayon sa heograpikal o tematikong prinsipyo.

ParameterMaximumTandaan
Haba ng pangalan ng channel92 characterLatin na titik, numero, -, _
Subscriber bawat channel50 000Higit pa — mag-shard
Channel Groups2000 grupo / keyHanggang 500 channel bawat grupo
Kasaysayan (storage)Walang limitasyonPagbabayad bawat dami ng imbakan

Paano gamitin ang PubNub sa isang proyekto

Ang integrasyon ng PubNub ay nangangailangan ng pagpaparehistro, paglikha ng application sa admin panel at pagkuha ng set ng mga key. Ang mga library ng PubNub ay available para sa JavaScript, Swift, Kotlin, Java, Dart (Flutter), C#, Python, Ruby, Go at marami pang ibang wika. Tingnan natin ang isang halimbawa sa JavaScript para sa browser at Node.js.

Ayon sa dokumentasyon ng PubNub (2025), sinusuportahan ng pubnub-js library ang parehong CommonJS at ES Module import. Para sa browser, inirerekomenda ang pag-install sa pamamagitan ng npm na sinusundan ng bundling sa pamamagitan ng webpack o vite.

Pag-subscribe sa isang channel

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('Bagong mensahe:', event.message);
    },
    presence: (event) => {
        console.log('Presence:', event.uuid, event.action);
    }
});

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

Pagkuha ng kasaysayan ng mga mensahe

js
pubnub.fetchMessages(
    { channels: ['chat-general'], count: 50 },
    (status, response) => {
        if (status.error) {
            console.error('Error sa pagkuha ng kasaysayan', status);
            return;
        }
        const messages = response.channels['chat-general'];
        messages.forEach((msg) => {
            console.log(msg.message, msg.timetoken);
        });
    }
);

PubNub Functions at Stream Controller

PubNub Functions — serverless platform para sa pagproseso ng mga mensahe sa panig ng PubNub. Ang mga function ay isinulat sa JavaScript at isinasagawa sa isang secure na nakahiwalay na kapaligiran (V8 isolate). Maaari nilang baguhin, salain, i-buffer at i-redirect ang mga mensahe bago maihatid sa mga subscriber.

Stream Controller — built-in na routing mechanism na namamahala sa daloy ng mensahe batay sa mga patakaran. Tinutukoy ng mga patakaran kung aling mga mensahe ang ihahatid, alin ang itatapon, at alin ang iruruta sa PubNub Functions para sa pagproseso. Sinusuportahan ng Stream Controller ang conditional routing ayon sa nilalaman ng mensahe, uri ng channel o metadata.

Ayon sa blog ng PubNub (2024), binabawasan ng PubNub Functions ang mga gastos sa server infrastructure para sa pagproseso ng mensahe ng 40–60% dahil ang filtering at transformation logic ay isinasagawa sa edge nodes ng PubNub, hindi sa sariling server. Ang mga function ay may access sa HTTP requests, Key-Value storage at iba pang function sa parehong espasyo.

PubNub sa mga mobile application

PubNub SDK para sa mga mobile platform ay available para sa iOS (Swift), Android (Kotlin/Java), Flutter (Dart) at React Native (JavaScript). Sinusuportahan ng mga mobile SDK ang buong hanay ng mga function: pub/sub, presensya, kasaysayan, PAM at PubNub Functions. Para sa mga push notification, ang PubNub ay isinasama sa APNs at FCM sa pamamagitan ng isang espesyal na mekanismo ng mobile push gateway.

Pag-optimize para sa mga mobile device ay kinabibilangan ng adaptive heartbeat, batch processing ng mga mensahe at suporta para sa mga background mode. Ang PubNub SDK para sa iOS ay gumagamit ng Background Task API para mapanatili ang koneksyon kapag ang app ay na-minimize (hanggang 30 segundo ng karaniwang background time). Para sa mas mahabang background na trabaho, kinakailangan ang paggamit ng mga push notification.

Mobile Push Gateway — mekanismo ng pagpapadala ng mga push notification sa pamamagitan ng PubNub. Kapag ang isang mensahe ay na-publish sa isang channel, awtomatikong tinutukoy ng PubNub kung aling mga subscriber ang offline at nagpapadala sa kanila ng push notification sa pamamagitan ng APNs (iOS) o FCM (Android). Ang configuration ay ginagawa nang isang beses sa admin panel — pagkatapos noon lahat ng mensahe mula sa channel ay awtomatikong nadoble sa push channel. Ayon sa dokumentasyon ng PubNub (2025), pinoproseso ng gateway ang hanggang 10 000 push notification bawat segundo.

Mga Madalas Itanong

Ano ang pagkakaiba ng PubNub sa Pusher?

PubNub ay nag-aalok ng mas maraming SDK (75+ platform), built-in na serverless function at Stream Controller para sa pagproseso ng mensahe. Ang Pusher ay mas simple sa pag-setup, ngunit ang PubNub ay nagbibigay ng higit na kontrol sa routing at pagbabago ng data.

Paano ginagarantiyahan ng PubNub ang paghahatid ng mensahe?

Gumagamit ang PubNub ng at-least-once mekanismo na may awtomatikong pagsubok muli sa mga pagkakamali. Ang bawat mensahe ay may natatanging timetoken para sa deduplikasyon. Ang mga mensahe ay ba-buffer sa loob ng 30 segundo para sa mga offline na subscriber.

Magkano ang PubNub?

Ang libreng plano ay may kasamang 100 sabay-sabay na koneksyon at 1 milyong mensahe bawat buwan. Ang mga bayad na plano ay nagsisimula sa $49/buwan para sa 1000 sabay-sabay na koneksyon na may walang limitasyong bilang ng mga mensahe.

Sinusuportahan ba ng PubNub ang encryption?

Oo, sinusuportahan ng PubNub ang TLS 1.3 para sa lahat ng koneksyon at opsyonal na end-to-end encryption sa client side (AES-256) na may pamamahala ng key sa pamamagitan ng PAM. Para sa mga enterprise client, available ang Cipher Key mode.

Anong mga wika ang sinusuportahan ng PubNub SDK?

Nagbibigay ang PubNub ng SDK para sa 75+ platform, kabilang ang JavaScript, Swift, Kotlin, Java, Dart, C#, Python, Ruby, Go, C++, PHP, Rust at Objective-C. Ito ang pinakamalaking ecosystem sa mga real-time na serbisyo.

Buod

  • PubNub — pandaigdigang real-time na network ng pagmemensahe na may 15+ data center at suporta para sa 75+ platform.
  • Sistema ng key publish/subscribe/secret + PAM ay nagbibigay ng flexible na pamamahala ng mga karapatan sa pag-access.
  • PubNub Functions ay nagpapahintulot ng serverless na pagproseso ng mensahe nang walang sariling server infrastructure.
  • Stream Controller ay namamahala sa routing, filtering at pagbabago ng mga mensahe sa edge nodes ng network.
  • Mobile Push Gateway ay awtomatikong nagpapadala ng push sa pamamagitan ng APNs at FCM para sa mga offline na subscriber.
  • Mga channel ay sumusuporta hanggang 50 000 subscriber, at ang Channel Groups ay nagpapasimple sa pamamahala ng maraming channel.
  • Para sa mga proyekto na may malawak na platform support at built-in na pagproseso ng mensahe, piliin ang PubNub; para sa mas simpleng mga sitwasyon, sapat na ang Pusher.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din