Senior
Kuidas töötab WebSocket-ühendus arhitektuuris — millal see luuakse ja kes kellega suhtleb?
sobes.tech AI
Vastus AI-lt
WebSocket ühendus luuakse spetsiaalse handshake'i kaudu HTTP-protokolli peal:
- Klient saadab HTTP-päringu päisega
Upgrade: websocket, et üle minna WebSocket-protokollile. - Server, mis toetab WebSocketit, vastab kinnitusega ja üleminekuga kahepoolsele ühendusele.
Pärast ühenduse loomist:
- Klient ja server hoiavad püsivat TCP-ühendust.
- Mõlemad pooled saavad igal ajal saata sõnumeid ilma ühendust uuesti loamata.
Seda arhitektuuri kasutades on võimalik teostada reaalajas suhtlust, näiteks vestlust või andmete reaalajas uuendamist.
Näide Go keeles kasutades gorilla/websocket paketti:
var upgrader = websocket.Upgrader{}
func wsHandler(w http.ResponseWriter, r *http.Request) {
conn, err := upgrader.Upgrade(w, r, nil)
if err != nil {
log.Print("ülemineku viga:", err)
return
}
defer conn.Close()
for {
_, msg, err := conn.ReadMessage()
if err != nil {
break
}
// Sõnumi töötlemine
conn.WriteMessage(websocket.TextMessage, msg) // peegeldus
}
}
Sel viisil tagab WebSocket kahepoolse, püsiva ühenduse kliendi ja serveri vahel.