Pusher — apa itu, platform real-time dan integrasi dalam aplikasi

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

Pusher: layanan hosted untuk komunikasi dua arah real-time, menyediakan infrastruktur untuk saluran, peristiwa, dan notifikasi webhook. Ini membebaskan pengembang dari kebutuhan untuk menyebarkan server WebSocket sendiri dan memastikan pengiriman pesan ke jutaan perangkat. Menurut dokumentasi resmi Pusher (2025), layanan ini memproses lebih dari 40 miliar pesan setiap bulan di seluruh dunia.

Poin Utama

  • Pusher — layanan cloud untuk pesan real-time, tanpa perlu mengelola server sendiri.
  • Saluran dan peristiwa — publikasi pesan dilakukan melalui saluran bernama dengan dukungan tipe: public, private, presence.
  • Transport WebSocket — klien terhubung melalui WebSocket dengan fallback ke HTTP polling.
  • Integrasi Webhook — peristiwa server dikirim ke backend Anda melalui HTTP-hook.
  • SDK untuk semua platform — klien siap pakai untuk JavaScript, iOS, Android, React Native, dan bahasa server.

Apa itu Pusher?

Pusher — layanan cloud untuk komunikasi dua arah real-time, didirikan pada tahun 2011. Ini menyediakan infrastruktur siap pakai untuk mengirim dan menerima pesan secara real-time tanpa perlu mengelola server WebSocket sendiri. Pusher digunakan untuk membangun chat, notifikasi langsung, pengeditan bersama, dan papan peringkat game.

Tidak seperti pustaka seperti Socket.IO, yang memerlukan penyebaran dan pemeliharaan server sendiri, Pusher bekerja dengan model SaaS (Software as a Service). Pengembang mendaftar, mendapatkan kunci (app_id, key, secret) dan menggunakan REST API Pusher untuk mempublikasikan peristiwa. Infrastruktur server sepenuhnya dikelola oleh platform Pusher.

Menurut blog resmi Pusher (2025), platform ini melayani lebih dari 250.000 proyek aktif di seluruh dunia. Di antara klien terkenal adalah GitHub (notifikasi real-time), Trello (sinkronisasi papan), dan Intercom (chat dukungan). Pusher mendukung pusat data di AS, Eropa, dan Asia untuk meminimalkan latensi.

Sejarah perkembangan Pusher

Pusher diluncurkan pada tahun 2011 sebagai salah satu layanan hosted pertama untuk WebSocket. Pada tahun 2014, perusahaan memperkenalkan Pusher Channels — arsitektur saat ini dengan dukungan untuk saluran private dan presence. Pada tahun 2017, dukungan webhook untuk peristiwa sisi server ditambahkan. Pada tahun 2022, Pusher meluncurkan Pusher Beams — layanan notifikasi push untuk platform mobile.

Arsitektur Pusher berbeda dari solusi self-hosted karena semua pemrosesan langganan, manajemen koneksi, dan perutean peristiwa terjadi di sisi Pusher Cloud. Pengembang hanya mengelola otentikasi saluran private melalui backend-nya sendiri.

Bagaimana Pusher bekerja

Arsitektur Pusher didasarkan pada model Publisher-Subscriber. Aplikasi server mempublikasikan peristiwa melalui REST API Pusher, dan aplikasi klien menerimanya melalui koneksi WebSocket permanen. Pusher bertindak sebagai perantara antara penerbit dan pelanggan.

Ketika server mengirim peristiwa melalui permintaan POST ke API Pusher, platform menentukan saluran tujuan dan menyiarkan pesan ke semua klien yang berlangganan saluran tersebut. Klien menerima peristiwa melalui koneksi WebSocket yang sudah terbuka, yang memberikan latensi 50–100 ms tergantung pada lokasi geografis.

Setiap klien membuat koneksi melalui Pusher Client SDK, yang secara otomatis memilih transport (WebSocket — prioritas, HTTP long-polling — fallback). SDK mengelola koneksi ulang, serialisasi data, dan penanganan kesalahan tanpa campur tangan pengembang. Menurut dokumentasi teknis Pusher (2025), waktu koneksi ulang saat gangguan jaringan kurang dari 1 detik.

Komponen Pusher

Sistem terdiri dari tiga komponen: Pusher Server API (titik akhir REST untuk mempublikasikan peristiwa), Pusher Client SDK (pustaka untuk berlangganan peristiwa), dan Pusher WebHook (notifikasi server tentang peristiwa koneksi/pemutusan). Semua komponen bekerja secara asinkron dan independen.

Jenis saluran Pusher

Pusher Channels mendukung tiga jenis saluran, masing-masing ditujukan untuk skenario penggunaan yang berbeda. Pilihan jenis saluran menentukan tingkat akses, mekanisme otentikasi, dan kemampuan yang tersedia.

Jenis saluranAwalanOtentikasiPenggunaan
Publicchannel-Tidak diperlukanData publik: kurs mata uang, cuaca, umpan berita
Privateprivate-Tanda tangan permintaan di serverNotifikasi pribadi, chat, data pengguna
Presencepresence-Tanda tangan + informasi penggunaStatus online, ruang game, pengeditan bersama

Saluran Public dapat diakses oleh semua klien tanpa otentikasi dan cocok untuk data siaran. Saluran Private memerlukan otentikasi melalui server pengembang: klien mengirim permintaan ke backend-nya dengan socket_id dan channel_name, server menandatangani permintaan dengan kunci rahasia Pusher dan mengembalikan token auth. Saluran Presence tambahan mengirimkan informasi pengguna (user_id, user_info) dan memungkinkan pelacakan siapa yang sedang online.

Menurut dokumentasi Pusher (2025), jumlah maksimum klien yang terhubung secara bersamaan per saluran adalah 10.000 untuk saluran public dan private. Untuk saluran presence, batasnya adalah 10.000 pengguna per saluran dengan dukungan hingga 100.000 pengguna per aplikasi.

Peristiwa dan pemicu Pusher

Model peristiwa Pusher didasarkan pada peristiwa bernama yang dipublikasikan dalam saluran. Setiap peristiwa memiliki nama (maksimum 200 karakter), data dalam format JSON, dan socket_id opsional untuk mengecualikan pengiriman ulang ke inisiator peristiwa.

Pemicu (trigger) — adalah permintaan HTTP POST ke API Pusher yang mempublikasikan peristiwa dalam saluran. Format permintaan: POST /apps/{app_id}/events dengan body berisi channel, name, dan data. Pusher Server API mendukung pemicu dari lingkungan server mana pun melalui pustaka resmi (PHP, Ruby, Python, Go, Java, Node.js).

Pusher mendukung pemicu batch — publikasi satu peristiwa ke beberapa saluran dengan satu permintaan. Ini lebih efisien daripada panggilan berurutan dan menjamin atomisitas pengiriman. Menurut tes kinerja Pusher (2024), pemicu batch pada 100 saluran membutuhkan waktu 30–50 ms, sedangkan panggilan berurutan membutuhkan 2–5 detik.

Integrasi Webhook

Pusher WebHook memungkinkan server Anda menerima notifikasi tentang peristiwa infrastruktur: koneksi klien, pemutusan, terjadinya kesalahan. Permintaan Webhook ditandatangani dengan HMAC-SHA256 untuk verifikasi. Ini penting untuk pencatatan, analitik, dan sinkronisasi status.

Cara mengintegrasikan Pusher ke proyek

Integrasi Pusher terdiri dari dua bagian: sisi server (publikasi peristiwa) dan sisi klien (berlangganan peristiwa). Mari kita lihat contoh pada Node.js untuk bagian server dan JavaScript untuk bagian klien. Untuk memulai, Anda perlu membuat aplikasi di dashboard Pusher dan mendapatkan kredensial.

Menurut dokumentasi Pusher (2025), paket dasar (Sandbox) mencakup hingga 100 koneksi bersamaan dan 200.000 pesan per hari — cukup untuk pengembangan dan pengujian. Paket produksi mulai dari $49 per bulan untuk 1000 koneksi.

Kode server: publikasi peristiwa

js
const Pusher = require('pusher');

const pusher = new Pusher({
    appId: 'YOUR_APP_ID',
    key: 'YOUR_KEY',
    secret: 'YOUR_SECRET',
    cluster: 'eu',
    useTLS: true
});

pusher.trigger('my-channel', 'my-event', {
    message: 'Hello from server',
    timestamp: Date.now()
}).then(() => {
    console.log('Peristiwa dipublikasikan');
}).catch(console.error);

Kode klien: berlangganan peristiwa

js
import Pusher from 'pusher-js';

const pusher = new Pusher('YOUR_KEY', {
    cluster: 'eu',
    forceTLS: true
});

const channel = pusher.subscribe('my-channel');

channel.bind('my-event', (data) => {
    console.log('Peristiwa diterima:', data);
    displayNotification(data.message);
});

Pusher di aplikasi mobile

Pusher menyediakan SDK untuk iOS (Swift) dan Android (Java/Kotlin) yang sepenuhnya meniru fungsionalitas klien JavaScript. SDK mobile mendukung jenis saluran yang sama, mekanisme otentikasi, dan model peristiwa yang sama. Untuk React Native, tersedia paket pusher-js yang bekerja melalui jembatan JavaScript.

Pada perangkat mobile, Pusher SDK secara otomatis menangani peralihan antara Wi-Fi dan jaringan seluler, menggunakan mekanisme koneksi ulang dengan penundaan eksponensial. Ini sangat penting untuk aplikasi iOS, di mana iOS dapat memaksa menutup koneksi WebSocket saat bekerja di latar belakang.

Menurut blog teknis Pusher (2024), konsumsi lalu lintas rata-rata satu koneksi Pusher adalah 1–2 KB per menit saat tidak ada peristiwa aktif. Ini dicapai melalui protokol heartbeat yang dioptimalkan dengan interval 30 detik. Aplikasi berukuran sedang dapat mendukung hingga 1000 koneksi Pusher bersamaan tanpa dampak signifikan pada konsumsi baterai.

Pusher Beams untuk notifikasi push

Pusher Beams — layanan tambahan untuk mengirim notifikasi push ke perangkat mobile melalui APNs (iOS) dan FCM (Android). Beams terintegrasi dengan Pusher Channels: peristiwa dari saluran dapat secara otomatis memicu notifikasi push jika klien offline. Ini memecahkan masalah pengiriman pesan saat aplikasi tertutup.

Keamanan dan otentikasi Pusher

Keamanan Pusher diimplementasikan di beberapa tingkat. Setiap permintaan ke API Pusher ditandatangani dengan HMAC-SHA256 menggunakan app_secret. Ini menjamin bahwa hanya server yang berwenang yang dapat mempublikasikan peristiwa. SDK klien menggunakan app_key untuk identifikasi aplikasi, tetapi untuk akses ke saluran private dan presence, diperlukan otentikasi tambahan.

Otentikasi saluran private terjadi dalam tiga langkah: klien memanggil pusher.subscribe('private-channel'), Pusher Client SDK mengirim permintaan HTTP ke titik akhir backend Anda (/pusher/auth), server memeriksa hak pengguna dan mengembalikan token auth yang ditandatangani dengan kunci rahasia. Pusher memverifikasi tanda tangan dan mengizinkan langganan.

Disarankan untuk menggunakan koneksi TLS untuk semua permintaan (pengaturan useTLS: true di SDK). Pusher juga mendukung pembatasan akses berdasarkan alamat IP untuk permintaan server ke REST API. Untuk tarif enterprise, dukungan untuk VPC (Virtual Private Cloud) dan kluster khusus dengan infrastruktur terisolasi tersedia.

Pertanyaan yang Sering Diajukan

Apa perbedaan Pusher dengan Socket.IO?

Pusher — adalah layanan hosted (SaaS) yang tidak memerlukan manajemen server. Socket.IO — adalah pustaka yang harus Anda sebarkan sendiri. Pusher lebih mudah diatur, tetapi lebih mahal saat diskalakan. Socket.IO memerlukan pekerjaan DevOps, tetapi lebih murah pada volume besar.

Berapa biaya Pusher?

Paket gratis Sandbox mencakup 100 koneksi dan 200.000 pesan per hari. Paket produksi mulai dari $49/bulan (1000 koneksi, pesan tak terbatas) hingga enterprise dengan ketentuan individu.

Bagaimana Pusher memastikan pengiriman pesan?

Pusher menggunakan WebSocket dengan fallback otomatis ke HTTP long-polling. Untuk pesan kritis, antrian di sisi Pusher tersedia dengan jaminan pengiriman setidaknya sekali (at-least-once).

Bisakah Pusher digunakan di Rusia?

Ya, Pusher dapat diakses dari Rusia melalui kluster Eropa (eu). Latensinya 50–100 ms untuk pusat data Eropa. Untuk proyek dengan persyaratan lokalisasi data, disarankan untuk mempertimbangkan alternatif.

Apa saja alternatif untuk Pusher?

Pesaing utama adalah Ably (fungsionalitas serupa, tarif lebih fleksibel), PubNub (jaringan pengiriman global), Socket.IO (self-hosted), dan Firebase Realtime Database (ekosistem Google).

Kesimpulan

  • Pusher — layanan cloud SaaS untuk pesan real-time, tanpa perlu mengelola infrastruktur server sendiri.
  • Tiga jenis saluran — public (tanpa otentikasi), private (dengan tanda tangan), dan presence (dengan pelacakan pengguna) — mencakup semua skenario.
  • Model peristiwa didasarkan pada peristiwa bernama dengan JSON-payload, dipublikasikan melalui REST API.
  • SDK mobile untuk iOS dan Android mendukung koneksi ulang otomatis dan konsumsi lalu lintas yang dioptimalkan.
  • Keamanan dijamin oleh tanda tangan HMAC pada permintaan, enkripsi TLS, dan otentikasi saluran private melalui backend.
  • Pusher Beams menambahkan notifikasi push untuk pengiriman offline melalui APNs dan FCM.
  • Untuk proyek kecil dengan startup cepat, Pusher optimal, dengan banyak koneksi, self-hosted Socket.IO lebih ekonomis.

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