Sobes.tech
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 :

  1. Le client envoie une requête HTTP avec l'en-tête Upgrade: websocket pour passer au protocole WebSocket.
  2. 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.