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:
- Der Client sendet eine HTTP-Anfrage mit dem Header
Upgrade: websocket, um auf das WebSocket-Protokoll umzuschalten. - 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.