Sobes.tech
Senior

Hoe werkt de WebSocket-verbinding in de architectuur — op welk moment wordt deze tot stand gebracht en wie communiceert met wie?

sobes.tech AI

Antwoord van AI

WebSocket-verbinding wordt tot stand gebracht via een speciale handshake bovenop het HTTP-protocol:

  1. De client stuurt een HTTP-verzoek met de header Upgrade: websocket om over te schakelen naar het WebSocket-protocol.
  2. De server die WebSocket ondersteunt, reageert met een bevestiging en schakelt over op een bidirectionele verbinding.

Na de installatie:

  • De client en server onderhouden een permanente TCP-verbinding.
  • Beide partijen kunnen op elk moment berichten verzenden zonder de verbinding opnieuw te hoeven opzetten.

In de architectuur maakt dit het mogelijk om real-time communicatie te implementeren, bijvoorbeeld chat of real-time gegevensupdates.

Voorbeeld in Go met gebruik van het gorilla/websocket pakket:

var upgrader = websocket.Upgrader{}

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

    for {
        _, msg, err := conn.ReadMessage()
        if err != nil {
            break
        }
        // Verwerking van bericht
        conn.WriteMessage(websocket.TextMessage, msg) // echo
    }
}

Op deze manier biedt WebSocket een bidirectionele, permanente verbinding tussen client en server.