Senior
Ako funguje WebSocket spojenie v architektúre — kedy sa vytvára a kto s kým komunikuje?
sobes.tech AI
Odpoveď od AI
Pripojenie WebSocket sa zriaďuje prostredníctvom špeciálneho handshake nad protokolom HTTP:
- Klient odošle požiadavku HTTP s hlavičkou
Upgrade: websocket, aby prešiel na protokol WebSocket. - Server podporujúci WebSocket odpovie potvrdením a prejde na obojsmerné spojenie.
Po nadviazaní:
- Klient a server udržiavajú trvalé TCP spojenie.
- Obidve strany môžu kedykoľvek posielať správy bez nutnosti opätovného nadviazania spojenia.
V architektúre to umožňuje realizáciu komunikácie v reálnom čase, napríklad chat alebo aktualizácie dát v reálnom čase.
Príklad v Go s použitím balíka 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("chyba pri upgrade:", err)
return
}
defer conn.Close()
for {
_, msg, err := conn.ReadMessage()
if err != nil {
break
}
// Spracovanie správy
conn.WriteMessage(websocket.TextMessage, msg) // odraz
}
}
Týmto spôsobom WebSocket zabezpečuje obojsmerné, trvalé spojenie medzi klientom a serverom.