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 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).
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.
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.
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.
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 — 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.
| Parameter | Maksimum | Catatan |
|---|---|---|
| Panjang nama saluran | 92 karakter | Huruf Latin, angka, -, _ |
| Pelanggan per saluran | 50 000 | Lebih — sharding |
| Channel Groups | 2000 grup / kunci | Hingga 500 saluran per grup |
| Riwayat (storage) | Tak terbatas | Bayar per volume penyimpanan |
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.
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' }
});
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);
});
}
);
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 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
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.
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.
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.
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.
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
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.
Baca juga