Kompatibilitas
Backend realtime yang kompatibel dengan Pusher
PushCaster berbicara protokol Pusher Channels versi 7 di kabel. Pindah itu soal konfigurasi, bukan menulis ulang — dan halaman ini adalah daftar persis dari apa yang berubah.
Tanpa menulis ulang aplikasi. Hanya perubahan konfigurasi koneksi yang diperlukan. Tiga sampai enam baris per aplikasi; untuk Laravel, satu perubahan di .env dan tidak ada lagi. Bukan drop-in dan bukan zero-config: host harus disetel, dan kredensialnya baru.
Apa yang tetap sama
Kabel, pustaka, dan jabat tangan autentikasi
Kompatibilitas di sini berarti protokolnya, bukan kemiripan — format permintaan/respons, semantik event, dan skema autentikasi yang kompatibel.
| Bidang | Yang tidak berubah |
|---|---|
| Protokol | Protokol Pusher Channels versi 7 di kabel. |
| Pustaka client | pusher-js, Laravel Echo, dan pustaka seluler resmi, tanpa modifikasi. |
| Pustaka server | pusher-php-server, pusher-http-node, serta pustaka Python, Go, Ruby, dan Java. |
| Tanda tangan | Skema penandatanganan dan kanonikalisasi yang kompatibel. |
| Jenis channel | public, private, presence, dan private-encrypted, dengan awalan yang sama. |
| Otorisasi langganan | POST /pusher/auth mempertahankan bentuk permintaan dan jawabannya. |
| client event | Antar-subscriber di channel private dan presence, seperti sebelumnya. |
| Webhook | Nama bidang dan header yang sama, termasuk channel_occupied, member_added, dan cache_miss. |
Versi SDK yang diuji
Kompatibel dengan versi SDK Pusher yang tercantum, tanpa mengubah SDK tersebut.
| SDK | Versi yang diuji |
|---|---|
| pusher-js (browser) | 8.6.0 |
| pusher/pusher-php-server | 7.3.0 |
| pusher (Node.js) | 5.3.4 |
| pusher (Python) | 3.3.4 |
| pusher-http-go | v5.1.1 |
| pusher (Ruby) | 2.1.1 |
| laravel/framework (Echo) | ^13.0 |
Apa yang berubah
Host, dan kredensialnya
pusher-js menetapkan ws-<cluster>.pusher.com secara tetap kecuali wsHost diberikan, dan pustaka server secara bawaan menuju api-<cluster>.pusher.com kecuali host diberikan. Menimpa keduanya itulah migrasinya.
const pusher = new Pusher(APP_KEY, {- cluster: 'eu',+ wsHost: 'ws-eu1.pushcaster.io',+ wsPort: 443,+ forceTLS: true, })Perubahan lengkap, per bahasa
// before — talking to Pushernew Pusher(KEY, { cluster: 'eu' })// after — talking to PushCaster (the key & secret are new)new Pusher(KEY, { wsHost: 'ws-eu1.pushcaster.io', wsPort: 443, forceTLS: true,})Menyetel host itu mudah terlewat. Kalau dibiarkan di nilai bawaannya, pustaka berbicara dengan server Pusher, dan galatnya menyebut key yang salah alih-alih tujuan yang keliru.
App id, key, dan secret-nya baru. Kredensial yang ada tidak ikut pindah. Pilih sebuah cluster sekalian — ia bagian dari host.
Perbedaan yang diketahui
Tiga hal yang tidak sama
Klaim kompatibilitas baru berguna bersama pengecualiannya. Ketiga hal ini bisa mengubah sebuah keputusan desain.
Satu cluster, tanpa federasi
Cluster adalah batas isolasi, bukan petunjuk geografis: punya node, NATS, dan Redis sendiri, dan tidak ada pengiriman antar-cluster. Sebuah aplikasi hidup di tepat satu cluster, jadi dua aplikasi yang harus saling bicara harus berada di cluster yang sama.
Host bukan nama cluster
cluster: "eu" saja tidak sampai ke PushCaster. Anda menyetel wsHost di klien dan host di pustaka server. Ini suntingan tiga opsi, dan setiap migrasi melakukannya.
Tidak ada API statistik
Endpoint statistik dasbor Pusher tidak punya padanan di sini. Pemakaian datang dari API kami sendiri dan metrik operasional dari Prometheus. Tidak ada SDK server resmi yang memanggil endpoint itu, jadi ini memengaruhi perkakas Anda, bukan aplikasi Anda.
Migrasi
Uji channel private dan presence lebih dulu
Channel public tetap lolos meski ada yang salah — mereka tidak menanyakan apa pun ke server Anda. Host yang basi atau secret yang tidak cocok baru muncul di langganan private dan presence.
- 01Buat aplikasinyaCluster yang Anda pilih adalah bagian dari setiap host yang sebentar lagi Anda setel.
- 02Setel host di kedua tempatClient butuh wsHost, server butuh host. Lewatkan salah satu dan separuh aplikasi Anda masih berbicara dengan Pusher.
- 03Tukar kredensialnyaKetiganya berubah bersamaan. Key baru dengan secret lama hanya gagal di langganan bertanda tangan — dan karena itulah ia lolos dari uji sekilas.
- 04Subscribe ke sebuah channel privateIni menjalankan POST /pusher/auth dan membuktikan secret cocok dengan app id.
- 05Bergabung ke sebuah channel presenceIni memastikan daftar anggota serta event bergabung dan keluar.
- 06Publikasikan dari serverIni memastikan host publikasi dan tanda tangannya dari ujung ke ujung.
Buat sebuah aplikasi dan arahkan satu client ke sana.
Pusher adalah merek dagang milik pemegang haknya. PushCaster adalah layanan independen, tidak berafiliasi dengan Pusher dan tidak didukung olehnya. Nama pustaka digunakan secara deskriptif.