PubNub — apa itu, SDK real-time dan cara kerjanya dalam aplikasi

Penulis: IT Sectr Diterbitkan: 2026-06-02 Waktu membaca: 8 mnt

PubNub — jaringan global untuk perpesanan real-time, menyediakan infrastruktur untuk mempublikasikan dan berlangganan pesan melalui WebSocket dengan latensi minimal. Ini ditujukan untuk aplikasi yang memerlukan pengiriman data yang andal di bawah beban tinggi dan koneksi yang tidak stabil. Menurut dokumentasi resmi PubNub (2025), platform ini memproses lebih dari 1 triliun pesan setiap bulan untuk 70 000+ aplikasi di seluruh dunia.

Poin Penting

  • PubNub — jaringan global untuk pesan real-time dengan 15+ pusat data dan pengiriman terjamin.
  • Pub/Sub dengan kunci — publikasi dan langganan melalui kunci publish/subscribe dengan pemisahan hak akses.
  • Stream Controller — manajemen aliran pesan dengan dukungan untuk filtering, transformasi, dan buffering.
  • Presence — pelacakan status online peserta saluran dengan deteksi melalui waktu tunggu.
  • SDK untuk 75+ platform — ekosistem pustaka klien terbesar di antara layanan real-time.

Apa itu PubNub?

PubNub — jaringan transmisi data real-time global, didirikan pada tahun 2010. Ini menyediakan API untuk mempublikasikan dan berlangganan pesan, serta layanan tambahan: penyimpanan riwayat, manajemen kehadiran, fungsi serverless (PubNub Functions), dan analitik aliran data.

Arsitektur PubNub didasarkan pada jaringan titik kehadiran terdistribusi (POP) yang berlokasi di 15+ wilayah geografis. Setiap titik berisi broker cache yang merutekan pesan antara penerbit dan pelanggan dengan latensi minimal. PubNub tidak menggunakan satu broker pusat — setiap wilayah beroperasi secara independen dan disinkronkan melalui jaringan global.

Menurut situs resmi PubNub (2025), platform ini melayani lebih dari 70 000 aplikasi di 200+ negara. Di antara klien utama adalah Logitech (manajemen perangkat IoT), GoPro (streaming video real-time), eBay (sinkronisasi lelang), dan Snapchat (obrolan dan notifikasi).

Prinsip Utama PubNub

PubNub dibangun di atas tiga prinsip: kecepatan (latensi kurang dari 10 ms pada persentil ke-95 dalam satu wilayah), keandalan (jaminan pengiriman at-least-once dengan pengulangan otomatis), dan skalabilitas (perluasan horizontal tanpa batasan jumlah saluran). Platform tidak menyimpan pesan dalam penyimpanan jangka panjang — riwayat dapat diakses melalui layanan Storage & Playback yang terhubung secara terpisah.

Cara Kerja PubNub

Model kerja PubNub didasarkan pada pola publish-subscribe klasik. Klien penerbit mengirim pesan dengan menentukan saluran melalui PubNub REST API dengan kunci publish. PubNub mengirimkan pesan ke semua pelanggan saluran ini melalui koneksi WebSocket aktif mereka. Pelanggan menerima pesan melalui callback handler yang terdaftar di PubNub SDK.

Lapisan transport PubNub menggunakan WebSocket sebagai protokol utama, dengan fallback ke HTTP long-polling untuk lingkungan dengan keterbatasan. SDK secara otomatis mengelola koneksi: membangun, mempertahankan heartbeat (setiap 15–60 detik tergantung jaringan), dan menyambung kembali saat terputus.

Setiap pesan di PubNub berisi metadata: UUID pengirim, cap waktu, nomor urut (timetoken), dan flag (store, replicate, eatAfterRead). Timetoken — pengidentifikasi unik PubNub berbasis waktu yang menjamin urutan global pesan dalam saluran. Menurut dokumentasi PubNub (2025), timetoken memiliki resolusi 10 nanodetik.

Aliran Pesan

Ketika klien mempublikasikan pesan, pesan tersebut melewati Stream Controller — modul routing PubNub. Stream Controller memeriksa hak akses (PAM), menerapkan aturan transformasi (PubNub Functions), menentukan wilayah target, dan mengirim pesan ke semua pelanggan. Jika pelanggan terputus, pesan akan di-buffer selama 30 detik (default) sambil menunggu pemulihan koneksi.

Kunci PubNub: publish, subscribe, secret

Sistem kunci PubNub membagi hak akses menjadi tiga tingkat: kunci publish (hanya publikasi), kunci subscribe (hanya langganan), dan kunci secret (administrasi). Setiap aplikasi menerima satu set tiga kunci saat pendaftaran, tetapi kunci secret tidak pernah dikirimkan ke klien — hanya digunakan di sisi server.

Kunci publish digunakan untuk mengirim pesan ke saluran. Kunci subscribe — untuk berlangganan saluran dan menerima pesan. Kunci secret — untuk mengelola akses melalui PubNub Access Manager (PAM), membuat token audiens sementara, dan mengelola kunci. Kunci secret disimpan dengan aman di server dan tidak pernah diungkapkan kepada klien.

PubNub mendukung beberapa mode autentikasi: berdasarkan alamat IP (untuk server), berdasarkan kunci rahasia (untuk operasi administratif), berdasarkan token sementara (untuk klien). Token sementara dikeluarkan melalui PAM dengan batasan waktu, saluran, dan hak (read, write, manage).

Saluran PubNub

Saluran PubNub — rute bernama untuk pesan. Nama saluran adalah string hingga 92 karakter, mendukung huruf Latin, angka, tanda hubung, dan garis bawah. Saluran dibuat secara dinamis pada publikasi atau langganan pertama. PubNub mendukung pola saluran melalui simbol * dalam permintaan subscribe — ini memungkinkan berlangganan ke grup saluran (misalnya, user-*).

Channel Groups — mekanisme pengelompokan saluran untuk langganan massal. Alih-alih berlangganan ke 50 saluran terpisah, klien berlangganan ke satu grup, dan semua pesan dari saluran yang termasuk di dalamnya secara otomatis dikirimkan ke klien. Channel Groups mendukung nesting, tetapi kedalaman tidak boleh melebihi 3 tingkat.

Menurut dokumentasi teknis PubNub (2025), jumlah maksimum pelanggan per saluran adalah 50 000. Untuk beban yang lebih tinggi, disarankan menggunakan saluran dengan prefiks dan melakukan sharding audiens (misalnya, chat-room-001, chat-room-002). Channel Groups juga dapat diatur berdasarkan prinsip geografis atau tematik.

ParameterMaksimumCatatan
Panjang nama saluran92 karakterHuruf Latin, angka, -, _
Pelanggan per saluran50 000Lebih — sharding
Channel Groups2000 grup / kunciHingga 500 saluran per grup
Riwayat (storage)Tak terbatasBayar per volume penyimpanan

Cara Menggunakan PubNub dalam Proyek

Integrasi PubNub memerlukan pendaftaran, pembuatan aplikasi di panel admin, dan memperoleh satu set kunci. Pustaka PubNub tersedia untuk JavaScript, Swift, Kotlin, Java, Dart (Flutter), C#, Python, Ruby, Go, dan banyak bahasa lainnya. Mari kita lihat contoh dalam JavaScript untuk browser dan Node.js.

Menurut dokumentasi PubNub (2025), pustaka pubnub-js mendukung import CommonJS dan ES Module. Untuk browser, disarankan instalasi melalui npm kemudian bundling melalui webpack atau vite.

Berlangganan ke Saluran

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

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

Mendapatkan Riwayat Pesan

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

Fungsi PubNub dan Stream Controller

PubNub Functions — platform serverless untuk memproses pesan di sisi PubNub. Fungsi ditulis dalam JavaScript dan dijalankan di lingkungan terisolasi yang aman (V8 isolate). Mereka dapat mentransformasi, memfilter, mem-buffer, dan mengarahkan ulang pesan sebelum dikirimkan ke pelanggan.

Stream Controller — mekanisme routing bawaan yang mengelola aliran pesan berdasarkan aturan. Aturan menentukan pesan mana yang dikirimkan, mana yang dibuang, dan mana yang diarahkan ke PubNub Functions untuk diproses. Stream Controller mendukung routing bersyarat berdasarkan konten pesan, jenis saluran, atau metadata.

Menurut blog PubNub (2024), PubNub Functions mengurangi biaya infrastruktur server untuk pemrosesan pesan sebesar 40–60% karena logika filtering dan transformasi dijalankan di node tepi PubNub, bukan di server sendiri. Fungsi memiliki akses ke permintaan HTTP, penyimpanan Key-Value, dan fungsi lain di ruang yang sama.

PubNub dalam Aplikasi Seluler

PubNub SDK untuk platform seluler tersedia untuk iOS (Swift), Android (Kotlin/Java), Flutter (Dart), dan React Native (JavaScript). SDK seluler mendukung set fitur lengkap: pub/sub, kehadiran, riwayat, PAM, dan PubNub Functions. Untuk notifikasi push, PubNub terintegrasi dengan APNs dan FCM melalui mekanisme mobile push gateway khusus.

Optimalisasi untuk perangkat seluler mencakup heartbeat adaptif, pemrosesan batch pesan, dan dukungan untuk mode latar belakang. PubNub SDK untuk iOS menggunakan Background Task API untuk mempertahankan koneksi saat aplikasi diminimalkan (hingga 30 detik waktu latar standar). Untuk pekerjaan latar yang lebih lama, diperlukan penggunaan notifikasi push.

Mobile Push Gateway — mekanisme pengiriman notifikasi push melalui PubNub. Ketika pesan dipublikasikan ke saluran, PubNub secara otomatis menentukan pelanggan mana yang offline dan mengirimkan notifikasi push melalui APNs (iOS) atau FCM (Android). Konfigurasi dilakukan sekali di panel admin — setelah itu semua pesan dari saluran secara otomatis diduplikasi ke saluran push. Menurut dokumentasi PubNub (2025), gateway memproses hingga 10 000 notifikasi push per detik.

Pertanyaan Umum

Apa perbedaan PubNub dengan Pusher?

PubNub menawarkan lebih banyak SDK (75+ platform), fungsi serverless bawaan, dan Stream Controller untuk pemrosesan pesan. Pusher lebih sederhana dalam pengaturan, tetapi PubNub memberikan kontrol lebih atas routing dan transformasi data.

Bagaimana PubNub menjamin pengiriman pesan?

PubNub menggunakan mekanisme at-least-once dengan pengulangan otomatis saat terjadi kesalahan. Setiap pesan memiliki timetoken unik untuk deduplikasi. Pesan di-buffer selama 30 detik untuk pelanggan offline.

Berapa biaya PubNub?

Paket gratis mencakup 100 koneksi simultan dan 1 juta pesan per bulan. Paket berbayar mulai dari $49/bulan untuk 1000 koneksi simultan dengan jumlah pesan tak terbatas.

Apakah PubNub mendukung enkripsi?

Ya, PubNub mendukung TLS 1.3 untuk semua koneksi dan enkripsi end-to-end opsional di sisi klien (AES-256) dengan manajemen kunci melalui PAM. Untuk klien enterprise, mode Cipher Key tersedia.

Bahasa apa yang didukung PubNub SDK?

PubNub menyediakan SDK untuk 75+ platform, termasuk JavaScript, Swift, Kotlin, Java, Dart, C#, Python, Ruby, Go, C++, PHP, Rust, dan Objective-C. Ini adalah ekosistem terbesar di antara layanan real-time.

Kesimpulan

  • PubNub — jaringan perpesanan real-time global dengan 15+ pusat data dan dukungan untuk 75+ platform.
  • Sistem kunci publish/subscribe/secret + PAM memberikan manajemen hak akses yang fleksibel.
  • PubNub Functions memungkinkan pemrosesan pesan serverless tanpa infrastruktur server sendiri.
  • Stream Controller mengelola routing, filtering, dan transformasi pesan di node tepi jaringan.
  • Mobile Push Gateway secara otomatis mengirim push melalui APNs dan FCM untuk pelanggan offline.
  • Saluran mendukung hingga 50 000 pelanggan, dan Channel Groups menyederhanakan manajemen banyak saluran.
  • Untuk proyek dengan dukungan platform luas dan pemrosesan pesan bawaan, pilih PubNub; untuk skenario yang lebih sederhana, Pusher sudah cukup.

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga