chat-log.{tenantId} kanalına abone olmak istediğinde, Pusher önce /api/broadcasting/auth endpoint’ine bir istek atar ve yetkilendirme imzası bekler.
Normal şartlarda bu endpoint’i elle çağırmanıza gerek yoktur. pusher-js (veya uyumlu bir Pusher istemcisi) abonelik akışının bir parçası olarak otomatik çağırır. Kendi WebSocket kütüphanenizi yazıyorsanız bu sayfa detayları verir.
Endpoint
İstek gövdesi
Pusher protokolü şu iki alanı gönderir:string
required
İstemci WebSocket bağlantısının benzersiz kimliği. pusher-js bunu otomatik üretir ve gönderir.
string
required
Abone olunmak istenen kanalın adı. Private kanallarda
private- önek’i ile başlar. Örn. private-chat-log.12.Başarılı yanıt
Kimlik doğrulama
- Bearer token zorunludur. Token yok veya geçersizse
401 Unauthorizeddöner. - X-Tenant header’ı gerekmez. Tenant kontrolü, kanal adının içindeki
{tenantId}üzerinden yapılır. Flextell, abone olmak istediğiniz tenant’a erişiminiz olup olmadığını otomatik doğrular.
Olası hatalar
403 aldığınızda istemciye “bu tenant’a erişiminiz yok” gibi açıklayıcı bir mesaj göstermek iyi bir pratiktir — Pusher tarafında
subscription_error callback’i ile yakalayabilirsiniz.
pusher-js ile otomatik yetkilendirme
pusher-js kullandığınızdaauth.headers ayarı sayesinde Bearer token her auth çağrısına otomatik eklenir:
authEndpoint’e çağrı atar ve alınan imzayla kanalı açar.
Backend-tarafı (server-side) abone olma
Sunucudan sunucuya dinleme yapmak istiyorsanız (ör. bir entegrasyon servisi) Pusher’ın sunucu SDK’larından birini kullanabilir ve kanala/broadcasting/auth üzerinden abone olabilirsiniz. Bu tarz kullanımlarda genellikle sürekli bir WebSocket bağlantısı yerine webhook veya doğrudan REST poll önerilir.
Token yenileme ile etkileşim
Access token’ınızın süresi dolduğunda mevcut WebSocket bağlantısı çalışmaya devam eder; ancak yeni bir kanala abone olmaya çalışırsanız/broadcasting/auth isteği 401 döner. Bu durumda:
- Refresh Token akışıyla yeni bir access token alın.
- Pusher istemcinizin
auth.headers.Authorizationdeğerini güncelleyin. - Gerekirse yeniden bağlanın (
pusher.disconnect()+ yeninew Pusher(...)örneği).