Senior
Comment fonctionne la connexion WebSocket dans l'architecture — à quel moment elle est établie et qui communique avec qui?
sobes.tech IA
Réponse de l'IA
La connexion WebSocket s'établit via une poignée de main spéciale sur le protocole HTTP :
- Le client envoie une requête HTTP avec l'en-tête
Upgrade: websocketpour passer au protocole WebSocket. - Le serveur, supportant WebSocket, répond par une confirmation et passe à une connexion bidirectionnelle.
Après l'installation :
- Le client et le serveur maintiennent une connexion TCP persistante.
- Les deux parties peuvent envoyer des messages à tout moment sans avoir besoin de rétablir la connexion.
Dans l'architecture, cela permet de réaliser une communication en temps réel, par exemple un chat ou une mise à jour de données en temps réel.
Exemple en Go utilisant le paquet gorilla/websocket :
var upgrader = websocket.Upgrader{}
func wsHandler(w http.ResponseWriter, r *http.Request) {
conn, err := upgrader.Upgrade(w, r, nil)
if err != nil {
log.Print("erreur de mise à niveau:", err)
return
}
defer conn.Close()
for {
_, msg, err := conn.ReadMessage()
if err != nil {
break
}
// Traitement du message
conn.WriteMessage(websocket.TextMessage, msg) // écho
}
}
Ainsi, WebSocket assure une connexion bidirectionnelle et persistante entre le client et le serveur.