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:
- De client stuurt een HTTP-verzoek met de header
Upgrade: websocketom over te schakelen naar het WebSocket-protocol. - 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.