Sobes.tech
Senior

Wie funktioniert die WebSocket-Verbindung in der Architektur — wann wird sie hergestellt und wer kommuniziert mit wem?

sobes.tech KI

Antwort von AI

WebSocket-Verbindung wird über einen speziellen Handshake über das HTTP-Protokoll hergestellt:

  1. Der Client sendet eine HTTP-Anfrage mit dem Header Upgrade: websocket, um auf das WebSocket-Protokoll umzuschalten.
  2. Der Server, der WebSocket unterstützt, antwortet mit einer Bestätigung und wechselt zu einer bidirektionalen Verbindung.

Nach der Einrichtung:

  • Der Client und der Server halten eine dauerhafte TCP-Verbindung aufrecht.
  • Beide Seiten können jederzeit Nachrichten senden, ohne die Verbindung neu herstellen zu müssen.

In der Architektur ermöglicht dies die Implementierung von Echtzeit-Kommunikation, z.B. Chat oder Datenaktualisierungen in Echtzeit.

Beispiel in Go mit dem Paket 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("Upgrade-Fehler:", err)
        return
    }
    defer conn.Close()

    for {
        _, msg, err := conn.ReadMessage()
        if err != nil {
            break
        }
        // Nachricht verarbeiten
        conn.WriteMessage(websocket.TextMessage, msg) // Echo
    }
}

Auf diese Weise bietet WebSocket eine bidirektionale, dauerhafte Verbindung zwischen Client und Server.