Realtime katmanı Pusher protokolü üzerinde çalışır. İstemci tarafında pusher-js (veya uyumlu bir Pusher istemcisi) kullanmak en kolay yoldur.
Kullanım senaryoları
Canlı sohbet arayüzü
Hasta WhatsApp’tan yazdığında mesajı panelde anlık gösterin.
Okundu göstergesi
Başka bir kullanıcı sohbeti okuduğunda tüm açık sekmelerde durumu güncelleyin.
Silme senkronizasyonu
Bir mesaj silindiğinde diğer istemcilerin listesinden anında kaldırın.
Aktivite bildirimleri
Konuşma akışını izleyen bir üretkenlik aracı yapın.
Mimari
- İstemci, bir private channel’a abone olmak ister.
- pusher-js,
POST /api/broadcasting/authendpoint’ine çağrı atarak Flextell’den kanal imzası alır. - Flextell, kullanıcının ilgili tenant’a erişimini kontrol eder.
- İmza geçerliyse Pusher bağlantıyı kurar; event’ler istemciye akmaya başlar.
Önemli kavramlar
Kanal adı
private- ile başlar ve abone olmadan önce imzalı yetkilendirme gerektirir. Flextell yalnızca private kanallar sunar — public veya presence kanal kullanılmaz.Tüm sohbet olayları
chat-log.{tenantId} kanalı üzerinden yayınlanır. tenantId, Multi-Tenancy sayfasında anlatılan tenant’ın ID’sidir.Event adları tam nitelikli biçimde yayınlanır:
App\Events\ChatLogCreated, App\Events\ChatLogDeleted, App\Events\ConversationRead. Pusher istemcilerinde event adını bu biçimde (gerektiğinde başında bir nokta . ile) dinlemeniz gerekir.Gerekli bilgiler
WebSocket bağlantısı kurmak için istemci tarafında şu yapılandırmaya ihtiyacınız var:| Parametre | Değer |
|---|---|
broadcaster | pusher |
key | Flextell’den size verilen Pusher key (destek üzerinden) |
cluster | eu |
forceTLS | true |
authEndpoint | https://dev.flextell.ai/api/broadcasting/auth (prod’da https://app.flextell.ai/api/broadcasting/auth) |
auth.headers.Authorization | Bearer <access_token> |
Sonraki adımlar
Kanal Yetkilendirme
/broadcasting/auth endpoint’inin detayları.
Kanallar
chat-log. kanalı ve abonelik örüntüsü.
Event'ler
Her event’in payload şeması ve örnekleri.