Sobes.tech
Senior

Hogyan működik a WebSocket kapcsolat az architektúrában — mikor jön létre és ki kivel kommunikál?

sobes.tech MI

Válasz az MI-től

A WebSocket kapcsolat egy speciális kézfogással jön létre az HTTP protokoll felett:

  1. A kliens HTTP-kérést küld a Upgrade: websocket fejlécel, hogy átálljon a WebSocket protokollra.
  2. A WebSocket támogatással rendelkező szerver megerősítéssel válaszol, és kétirányú kapcsolatba lép.

A telepítés után:

  • A kliens és a szerver folyamatos TCP-kapcsolatot tart fenn.
  • Mindkét fél bármikor küldhet üzenetet anélkül, hogy újra kellene kapcsolódni.

Az architektúrában ez lehetővé teszi a valós idejű kommunikációt, például chat vagy adatok valós idejű frissítése esetén.

Go nyelven a gorilla/websocket csomag használatával példa:

var upgrader = websocket.Upgrader{}

func wsHandler(w http.ResponseWriter, r *http.Request) {
    conn, err := upgrader.Upgrade(w, r, nil)
    if err != nil {
        log.Print("fejlesztési hiba:", err)
        return
    }
    defer conn.Close()

    for {
        _, msg, err := conn.ReadMessage()
        if err != nil {
            break
        }
        // Üzenet feldolgozása
        conn.WriteMessage(websocket.TextMessage, msg) // visszhang
    }
}

Így a WebSocket kétirányú, állandó kapcsolatot biztosít az ügyfél és a szerver között.