Sobes.tech
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:

  1. Müşteri, Upgrade: websocket başlığıyla bir HTTP isteği başlatır ve WebSocket protokolüne geçer.
  2. Sunucu geçişi onaylar ve kalıcı bir bağlantı kurulur.
  3. 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.