WebSocket Nedir?
İngilizce: WebSocket
WebSocket, HTTP yükseltmesiyle başlayan ve istemci-sunucu arasında kalıcı, çift yönlü gerçek zamanlı mesajlaşma sağlayan protokoldür.
WebSocket Nedir?
WebSocket, tarayıcı ile sunucu arasında tek bir kalıcı bağlantı üzerinden çift yönlü mesajlaşma sağlayan protokoldür. Klasik HTTP isteğinde istemci talep eder ve sunucu cevap verir; WebSocket’te bağlantı açık kaldığı için iki taraf da istediği anda mesaj gönderebilir.
Nasıl Çalışır?
Bağlantı HTTP handshake ile başlar ve Upgrade: websocket başlığıyla WebSocket protokolüne yükseltilir. Sonrasında veri frame’ler halinde taşınır. Bağlantının canlı tutulması, kimlik doğrulama, yetkilendirme, yeniden bağlanma ve ölçekleme uygulama mimarisinin parçasıdır.
API çağrıları tekil istek-cevap akışı için uygundur. Webhook, olay olduğunda başka sisteme bildirim gönderir. WebSocket ise kullanıcı ile sunucu arasında sürekli ve düşük gecikmeli kanal gerektiğinde tercih edilir.
İş Dünyasında Kullanımı
Canlı sohbet, destek ekranı, anlık bildirim, finansal fiyat akışı, kurye konumu, çok oyunculu oyun ve operasyon panoları WebSocket kullanımına örnektir. Müşteri temsilcisi ekranında yeni mesajın sayfa yenilemeden görünmesi tipik bir senaryodur.
Her gerçek zamanlı ihtiyaç WebSocket gerektirmez. Seyrek bildirimlerde polling veya server-sent events daha basit olabilir. WebSocket seçildiğinde yatay ölçekleme, bağlantı limiti ve mesaj sıralaması baştan tasarlanmalıdır.
İlgili Terimler
API, farklı yazılımların izin verilen veri ve işlemlere standart istekler üzerinden erişmesini sağlayan sözleşmeli arayüzdür.
GraphQL SubscriptionGraphQL Subscription, sunucudaki olayları bağlantı açıkken istemciye gerçek zamanlı ileten GraphQL işlem türüdür.
Long PollingLong polling, HTTP isteğini sunucuda yeni veri hazır olana kadar bekleterek istemciye neredeyse anlık güncelleme sağlar.
MQTTMQTT, IoT cihazlarının düşük bant genişliğiyle broker üzerinden konu bazlı yayın-abone mesajlaşması yapmasını sağlayan hafif protokoldür.
SSESSE, sunucunun açık bir HTTP bağlantısı üzerinden tarayıcıya tek yönlü canlı güncellemeler göndermesini sağlayan web standardıdır.
WebhookWebhook, belirli bir olay olduğunda bir sistemin başka bir sisteme otomatik HTTP isteği göndermesini sağlayan bildirim yöntemidir.
WebRTCWebRTC, tarayıcılar ve mobil uygulamalar arasında eklentisiz ses, video ve veri kanalı kurmayı sağlayan gerçek zamanlı iletişim standardıdır.
WebSocket SunucusuWebSocket sunucusu, çok sayıda istemciyle kalıcı bağlantı tutup gerçek zamanlı mesajları yöneten backend bileşenidir.