Server Sent Events Kavramını Anlamak
ChatGPT kullandığınızı hayal edin. Bir soru soruyorsunuz. Kelimelerin tek tek belirdiğini görmek yerine, tüm cevabın bir kerede görünmesi için 5 saniye bekliyorsunuz.
Bu gecikme yavaş hissettirir. Sinir bozucu hissettirir.
Bunu düzeltmek için geliştiriciler akış yanıtları (streaming responses) kullanır. Bu, deneyimin hızlı hissedilmesini sağlar.
Server Sent Events (SSE) bunu mümkün kılar.
SSE Nedir? SSE, bir sunucudan istemciye HTTP üzerinden veri akışı sağlamak için kullanılan bir standarttır. Sunucunun güncellemeleri size gerçek zamanlı olarak iletmesine olanak tanır.
Nasıl çalışır:
Sunucu küçük metin blokları gönderir. Bu bloklar data, event, id ve retry gibi alanlar kullanır. Her blok boş bir satırla ayrılır.
Örnek: data: {"name": "Portal Gun", "price": 999.99}
SSE'nin yaygın kullanım alanları:
- AI sohbet akışı (AI chat streaming)
- Canlı bildirimler
- Gerçek zamanlı günlükler (Real time logs)
- Sistem gözlemlenebilirliği (System observability)
SSE'den önce geliştiriciler güncellemeleri almak için iki ana yöntem kullanıyordu:
Kısa sorgulama (Short polling) İstemci sunucudan veri ister. Eğer veri hazır değilse, sunucu bir bekleme mesajı gönderir. İstemci bekler ve tekrar sorar. Bu, işlem tamamlanana kadar tekrarlanır.
Uzun sorgulama (Long polling) İstemci sunucudan veri ister. Sunucu, veri hazır olana veya bir zaman aşımı (timeout) gerçekleşene kadar isteği açık tutar. İstemci, bir yanıt aldıktan hemen sonra isteği yeniden başlatmalıdır.
Olay akışları (Event streams) sürekli süreçleri yönetir. Bu süreçler belirli bir sırayı takip eder. Buna PDF oluşturmak gibi basit görevler veya banka işlemleri gibi karmaşık görevler dahildir.
Sunucu, istemci ile bir iletişim kanalı açar. İşlem bitene kadar bu kanalı açık tutar.
Kaynak: https://dev.to/rishini_dharan_t/understanding-server-sent-events-3mkd