Skip to content

Realtime ve Webhook

Cavanshirpro edited this page Sep 19, 2026 · 1 revision

SSE, WebSocket ve webhook belgeleri

English · Türkçe · Languages / Diller

Kapsam: JSON API Forge 0.5.1 · İnceleme: 17 Eylül 2026 · Dil: Türkçe

Event channel yayınlama ve abonelik izinlerini ayrı tutar. Memory backend tek süreçte, Redis pub/sub birden fazla worker/host arasında bildirim yaymak için kullanılır. İkisi de dayanıklı kuyruk veya geçmiş olay deposu değildir.

{
  "realtime": {"backend": "memory"},
  "event_channels": [
    {
      "name": "updates", "path": "events/updates",
      "publish_permission": "updates.publish", "subscribe_permission": "updates.subscribe",
      "websocket_enabled": true, "sse_enabled": true,
      "max_message_bytes": 16384, "queue_size": 128,
      "max_websocket_connections": 100, "max_sse_connections": 100,
      "allowed_origins": ["http://localhost:3000"],
      "heartbeat_seconds": 15,
      "websocket_message_requests": 60,
      "websocket_message_window_seconds": 60,
      "websocket_message_burst": 15
    }
  ]
}

Rollere bu izinleri ayrıca verin. Varsayılan path events/<name> biçimindedir; yayınlama, /stream ve /ws yolları gerçek route çıktısında görünür. Mesaj zarfı ve yanıt biçimi için RealtimeSupport örneğini ve uygulamanın OpenAPI'sini kullanın.

Auth ve browser sınırları

API key'i URL query'sine koyma seçenekleri varsayılan olarak kapalıdır. Native istemciler header gönderebilir; browser'ın yerleşik WebSocket/EventSource API'lerinin keyfi header desteği farklıdır. Ön yüzünüz için bu kısıtı dikkate alan güvenli kimlik aktarımını tasarlayın; uzun ömürlü yönetici anahtarını frontende gömmeyin.

Origin allowlist ve subscribe/publish izinlerini ayrı değerlendirin. Public subscribe, public publish anlamına gelmez. Aynı uygulamaya erişebilen iki tenant'ın aynı event kanalında hangi payload'ları alacağını açıkça tasarlayın; CRUD row filter'larının her yayın mesajına otomatik uygulanacağını varsaymayın.

Backpressure ve teslim

Yavaş tüketici sınırsız RAM büyümesine yol açmamalıdır. Kuyruk/bağlantı limitlerini gerçek mesaj hızına göre seçin. Kanal mesaj sınırı küçültülebilir; süreç WebSocket tavanı 1 MiB'dir. Reconnect sonrasında kayıp mesajların otomatik replay edildiği vaat edilmez.

Güvenilir yeniden senkronizasyon için istemci tekrar bağlandığında güncel durumu HTTP API'den çekebilir. Her olayın kaybolmadan işlenmesi gerekiyorsa durable broker/outbox ve acknowledgment tasarımı gerekir.

Proxy ve hosting

Native ASGI ve WebSocket upgrade geçiren proxy kullanın. SSE için proxy buffering ve idle timeout değerlendirilmelidir. Passenger/WSGI'nin conventional HTTP yolu, kalıcı WebSocket veya Editör çağrı taşıması sağlamaz.

webhook_docs

Bu alan dış sistemlere ilişkin webhook sözleşmesini OpenAPI'de belgeler. Tek başına outbound webhook dispatcher, retry queue, imzalama veya teslim garantisi yaratmaz. Webhook göndermek gerekiyorsa uygun hook/worker ve güvenilir outbox akışı yazın.

Kaynak ve doğrulama

Bu sayfa aşağıdaki sabit commitlerdeki davranışı açıklar. Yeni bir sürümde aynı davranışın sürdüğünü varsaymayın.


Wiki ana sayfa · Tüm sayfalar · Sürüm ve bakım

Clone this wiki locally