Sobes.tech
Senior

Mimariyette WebSocket bağlantısı nasıl çalışır — ne zaman kurulur ve kim kiminle iletişim kurar?

sobes.tech yapay zeka

AI'dan gelen yanıt

WebSocket bağlantısı, HTTP protokolü üzerinde özel bir handshake ile kurulur:

  1. İstemci, Upgrade: websocket başlığı ile HTTP isteği gönderir ve WebSocket protokolüne geçer.
  2. WebSocket destekleyen sunucu, onay yanıtı verir ve çift yönlü bağlantıya geçer.

Kurulumdan sonra:

  • İstemci ve sunucu kalıcı bir TCP bağlantısı sürdürür.
  • Her iki taraf da herhangi bir zamanda mesaj gönderebilir, yeniden bağlantı kurmaya gerek kalmadan.

Mimari olarak, bu gerçek zamanlı iletişim, örneğin sohbet veya gerçek zamanlı veri güncellemeleri gibi uygulamaların gerçekleştirilmesine olanak tanır.

Go dilinde gorilla/websocket paketi kullanılarak örnek:

var upgrader = websocket.Upgrader{}

func wsHandler(w http.ResponseWriter, r *http.Request) {
    conn, err := upgrader.Upgrade(w, r, nil)
    if err != nil {
        log.Print("yükseltme hatası:", err)
        return
    }
    defer conn.Close()

    for {
        _, msg, err := conn.ReadMessage()
        if err != nil {
            break
        }
        // Mesaj işleme
        conn.WriteMessage(websocket.TextMessage, msg) // yankı
    }
}

Bu şekilde, WebSocket, istemci ve sunucu arasında çift yönlü ve kalıcı bir bağlantı sağlar.