Junior — Middle
WebSocket protokolünün çalışma prensibini ve sunucu ile müşteri arasında sürekli bağlantıyı nasıl sağladığını açıklayabilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
WebSocket, TCP üzerinde müşteri ile sunucu arasında sürekli çift yönlü bağlantı sağlayan bir protokoldür. Geleneksel HTTP'den farklı olarak, burada müşteri istekleri başlatırken, WebSocket sunucunun herhangi bir zamanda veri göndermesine olanak tanır.
Çalışma prensibi:
- Müşteri,
Upgrade: websocketbaşlığıyla bir HTTP isteği başlatır ve WebSocket protokolüne geçer. - Sunucu geçişi onaylar ve kalıcı bir bağlantı kurulur.
- Bağlantı kurulduktan sonra, müşteri ve sunucu tekrar eden HTTP isteklerine gerek kalmadan gerçek zamanlı mesajlar alışverişi yapabilir.
Bu, düşük gecikmeli uygulamalar oluşturmayı sağlar, örneğin sohbetler, oyunlar, finansal terminaller.
iOS'ta WebSocket kullanımı örneği (Swift):
import Foundation
let url = URL(string: "wss://example.com/socket")!
let webSocketTask = URLSession.shared.webSocketTask(with: url)
webSocketTask.resume()
// Mesaj gönder
let message = URLSessionWebSocketTask.Message.string("Merhaba sunucu!")
webSocketTask.send(message) { error in
if let error = error {
print("Gönderim hatası: \(error)")
}
}
// Mesajları alma
func receive() {
webSocketTask.receive { result in
switch result {
case .failure(let error):
print("Alma hatası: \(error)")
case .success(let message):
switch message {
case .string(let text):
print("Alınan mesaj: \(text)")
default:
break
}
receive() // dinlemeye devam et
}
}
}
receive()
Bu şekilde, WebSocket gerçek zamanlı veri alışverişi için verimli ve kalıcı bir bağlantı sağlar.