Sobes.tech
Senior

Arxitekturada WebSocket əlaqəsi necə işləyir — hansı vaxtda qurulur və kim kimlə əlaqə saxlayır?

sobes.tech Süni İntellekt

AI-dan cavab

WebSocket bağlantısı xüsusi bir əl sıxma vasitəsilə HTTP protokolü üzərində qurulur:

  1. Müştəri Upgrade: websocket başlığı ilə HTTP sorğusu göndərir və WebSocket protokoluna keçid edir.
  2. WebSocket-i dəstəkləyən server təsdiq cavabı verir və ikitərəfli əlaqəyə keçir.

Quraşdırıldıqdan sonra:

  • Müştəri və server davamlı TCP əlaqəsini saxlayır.
  • Hər iki tərəf istənilən vaxt mesaj göndərə bilər, əlaqəni yenidən qurmağa ehtiyac olmadan.

Arxitekturada bu, real vaxt kommunikasiya həyata keçirməyə imkan verir, məsələn, söhbət və ya real vaxtda məlumatların yenilənməsi.

Go dilində gorilla/websocket paketindən istifadə edən nümunə:

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ükseltmə xətası:", err)
        return
    }
    defer conn.Close()

    for {
        _, msg, err := conn.ReadMessage()
        if err != nil {
            break
        }
        // Mesajın işlənməsi
        conn.WriteMessage(websocket.TextMessage, msg) // ekos
    }
}

Beləliklə, WebSocket müştəri və server arasında ikitərəfli, davamlı əlaqə təmin edir.