WebSocket
- Okunuşu
- vebsokit
Kısaca
WebSocket, tarayıcı ile sunucu arasında tek bir bağlantıyı açık tutarak her iki tarafın istediği an birbirine anında mesaj göndermesini sağlayan protokoldür.
WebSocket nedir?
Düz HTTP'de istemci her zaman önce sormak zorundadır, sunucu ise yalnızca yanıtlayabilir. WebSocket bu sınırı kaldırır: bağlantının yükseltilmesini isteyen tek bir ilk HTTP isteğinden sonra tarayıcı ve sunucu kalıcı, çift yönlü bir kanal açık tutar ve her biri, mesaj başına çok az ek yükle, istediği zaman mesaj gönderebilir.
Tarayıcıda WebSocket API'si, bir ws:// ya da tercihen şifreli bir wss:// URL'sine bağlantı açar ve kodunuz open, message ve close olaylarını dinler. Tipik kullanım alanları sohbet uygulamaları, çok oyunculu oyunlar, canlı panolar, ortak çalışmaya yönelik editörler, alım satım ekranları ve bildirimlerdir; yani güncellemelerin gerçek zamanlı ulaşması gereken her yer.
HTTP, her yanıt için yeni bir istek gerektiren mektup göndermek gibidir; WebSocket ise iki tarafın da her an konuşabildiği, açık kalan bir telefon görüşmesi gibidir. Bunun bedeli, sunucuların çok sayıda uzun ömürlü bağlantıyı tutmak zorunda olmasıdır; bu da ölçeklemeyi, yük dengelemeyi ve ağ koptuğunda gereken yeniden bağlanma mantığını etkiler.
WebSocket çoğunlukla polling ve Server-Sent Events (SSE) ile karşılaştırılır. Polling sunucuya sürekli haber olup olmadığını sorar; basittir ama israftır. SSE ise güncellemeleri yalnızca sunucudan istemciye akıtır; bu da canlı akışlar ve birçok yapay zekâ sohbet yanıtı için yeterlidir. Güvenlik için her zaman wss:// kullanın, bağlantıyı doğrulayın, el sıkışma (handshake) sırasında Origin başlığını kontrol edin ve gelen her mesajı diğer güvenilmeyen girdiler gibi doğrulayın.
Bir bakışta
Önemli noktalar
- WebSocket, istemci ile sunucu arasında kalıcı, çift yönlü bir bağlantı sağlar.
- WebSocket protokolüne yükseltilen bir HTTP isteği olarak başlar.
- Her iki taraf da düşük ek yükle istediği zaman mesaj gönderebilir.
- Sohbet, oyun, canlı pano ve iş birliği araçları için uygundur.
wss://kullanın, bağlantıları doğrulayın ve her mesajı denetleyin.
Örnek
// Open an encrypted WebSocket connection
const socket = new WebSocket("wss://chat.example.com/rooms/42");
// Send a message once the connection is ready
socket.addEventListener("open", () => {
socket.send(JSON.stringify({ type: "join", user: "ada" }));
});
// The server can push messages at any time, without a new request
socket.addEventListener("message", (event) => {
const message = JSON.parse(event.data);
console.log(`${message.user}: ${message.text}`);
});Sık sorulan sorular
WebSocket ile HTTP arasındaki fark nedir?
HTTP, istemcinin sunucu yanıt verebilmeden önce sorması gereken bir istek-yanıt modelini izler. WebSocket bir HTTP el sıkışmasıyla başlar, ardından bağlantıyı açık tutar; böylece iki taraf da istediği zaman mesaj gönderebilir.
WebSocket yerine ne zaman Server-Sent Events kullanmalıyım?
Sohbet ya da çok oyunculu oyunlarda olduğu gibi hem istemcinin hem sunucunun sık mesaj göndermesi gerekiyorsa WebSocket kullanın. Güncellemeler yalnızca sunucudan istemciye akıyorsa Server-Sent Events daha basittir ve normal HTTP üzerinden çalışır.
Sık karşılaştırılanlar
İlgili sayfalar
- HTTPWeb Geliştirme, s. 20HTTP, tarayıcıların, uygulamaların ve sunucuların basit bir istek-yanıt döngüsüyle web sayfaları ve veri alışverişi yapmasını sağlayan protokoldür.
- JavaScriptWeb Geliştirme, s. 25JavaScript, web tarayıcılarında sayfaları etkileşimli hale getiren ve Node.js gibi çalışma ortamlarıyla sunucularda da çalışan programlama dilidir.
- APIBackend ve API'ler, s. 2API, bir yazılımın başka bir yazılımdan veri ya da işlem talep etmesini sağlayan, belgelenmiş ve öngörülebilir kurallar bütünüdür.
- TLSGüvenlik, s. 44TLS, ağda gönderilen veriyi şifreleyen ve sunucunun kimliğini doğrulayan, HTTPS, e-posta ve birçok başka bağlantıyı güvenceye alan kriptografik protokoldür.
- Yük DengeleyiciDevOps ve Bulut, s. 54Yük dengeleyici, gelen trafiği birkaç arka uç sunucuya dağıtan bir sunucu ya da hizmettir; hiçbir sunucu aşırı yüklenmez ve uygulama erişilebilir kalır.
- Olay Güdümlü MimariYazılım Mimarisi, s. 29Olay güdümlü mimari, servislerin bir siparişin verilmesi gibi olaylar üreterek ve bunlara tepki vererek iletişim kurduğu bir yazılım tasarım tarzıdır.
Kaynaklar
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin