Uyumluluk
Pusher uyumlu bir realtime backend'i
PushCaster telde Pusher Channels protokolünün 7. sürümünü konuşur. Taşınmak yapılandırmadır, yeniden yazmak değil — ve bu sayfa değişenlerin tam listesidir.
Uygulamayı yeniden yazmaya gerek yok. Yalnızca bağlantı yapılandırması değişir. Uygulama başına üç ila altı satır; Laravel için bir .env değişikliği ve başka bir şey değil. Ne drop-in ne de zero-config: host'un ayarlanması gerekir ve kimlik bilgileri yenidir.
Ne aynı kalıyor
Tel, kütüphaneler ve kimlik doğrulama el sıkışması
Buradaki uyumluluk benzerlik değil, protokolün kendisidir — uyumlu istek/yanıt biçimleri, olay anlamları ve kimlik doğrulama şeması.
| Alan | Değişmeyen |
|---|---|
| Protokol | Telde Pusher Channels protokolünün 7. sürümü. |
| İstemci kütüphaneleri | pusher-js, Laravel Echo ve resmî mobil kütüphaneler, değiştirilmeden. |
| Sunucu kütüphaneleri | pusher-php-server, pusher-http-node ve Python, Go, Ruby ile Java kütüphaneleri. |
| İmzalar | Uyumlu imzalama ve kanonikleştirme şeması. |
| Channel türleri | public, private, presence ve private-encrypted, aynı öneklerle. |
| Abonelik yetkilendirmesi | POST /pusher/auth istek ve yanıt biçimini korur. |
| client event'leri | private ve presence kanallarında aboneler arasında, eskisi gibi. |
| Webhook'lar | Aynı alan adları ve aynı başlıklar; channel_occupied, member_added ve cache_miss dahil. |
Test edilen SDK sürümleri
Listelenen Pusher SDK sürümleriyle uyumludur; bu SDK'larda değişiklik gerekmez.
| SDK | Test edilen sürüm |
|---|---|
| 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 |
Ne değişiyor
host ve kimlik bilgileri
pusher-js, wsHost verilmedikçe ws-<küme>.pusher.com adresini sabit tutar; sunucu kütüphaneleri de host verilmedikçe varsayılan olarak api-<küme>.pusher.com adresine gider. Geçiş, bunların üzerine yazmaktan ibarettir.
const pusher = new Pusher(APP_KEY, {- cluster: 'eu',+ wsHost: 'ws-eu1.pushcaster.io',+ wsPort: 443,+ forceTLS: true, })Dile göre tam değişiklik
// 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,})host'u ayarlamayı atlamak kolaydır. Varsayılanında bırakılırsa kütüphane Pusher'ın sunucularıyla konuşur ve hata, yanlış hedefi değil hatalı bir key'i işaret eder.
App id, key ve secret yenidir. Mevcut kimlik bilgileri taşınmaz. Aynı anda bir küme seçin — o da host'un bir parçasıdır.
Bilinen farklar
Aynı olmayan üç şey
Bir uyumluluk iddiası ancak istisnalarıyla birlikte işe yarar. Bu üçü bir tasarım kararını değiştirebilir.
Tek küme, federasyon yok
Küme coğrafi bir ipucu değil, bir yalıtım sınırıdır: kendi düğümleri, kendi NATS ve Redis'i vardır ve kümeler arasında teslimat yoktur. Bir uygulama tam olarak bir kümede yaşar; birbiriyle konuşması gereken iki uygulama aynı kümede olmalıdır.
Host, küme adı değildir
Tek başına cluster: "eu" PushCaster'a ulaşmaz. İstemcide wsHost, sunucu kütüphanesinde host ayarlanır. Üç seçeneklik bir düzenlemedir ve her geçiş bunu yapar.
İstatistik API'si yok
Pusher'ın panel istatistik uç noktasının burada bir karşılığı yok. Kullanım kendi API'mizden, operasyonel metrikler Prometheus'tan gelir. Hiçbir resmî sunucu SDK'sı o uç noktayı çağırmaz; yani bu, uygulamanızı değil araçlarınızı ilgilendirir.
Geçiş
Önce private ve presence kanallarını deneyin
Bir şey yanlışken bile public kanal'lar geçmeye devam eder — sunucunuza hiçbir şey sormazlar. Eski bir host ya da uyuşmayan bir secret ancak private ve presence aboneliklerinde ortaya çıkar.
- 01Uygulamayı oluşturunSeçtiğiniz küme, birazdan yapılandıracağınız her host'un parçasıdır.
- 02host'u iki yerde de ayarlayınİstemcinin wsHost'a, sunucunun host'a ihtiyacı var. Birini atlarsanız uygulamanızın yarısı hâlâ Pusher ile konuşur.
- 03Kimlik bilgilerini değiştirinÜçü birlikte değişir. Yeni bir key ile eski bir secret yalnızca imzalı aboneliklerde başarısız olur — hızlı bir denemeden sağ çıkmasının nedeni de budur.
- 04Bir private channel'a abone olunPOST /pusher/auth'u çalıştırır ve secret'in app id ile eşleştiğini kanıtlar.
- 05Bir presence kanal'ına katılınÜye listesini ve katılma/ayrılma olay'lerini doğrular.
- 06Sunucudan yayınlayınYayın host'unu ve imzayı uçtan uca doğrular.
Bir uygulama oluşturun ve bir istemciyi ona yöneltin.
Pusher, hak sahibinin tescilli markasıdır. PushCaster bağımsız bir hizmettir; Pusher ile bağlantılı değildir ve Pusher tarafından onaylanmamıştır. Kütüphane adları tanımlayıcı olarak kullanılmıştır.