Senior
Hogyan működik a WebSocket kapcsolat az architektúrában — mikor jön létre és ki kivel kommunikál?
sobes.tech MI
Válasz az MI-től
A WebSocket kapcsolat egy speciális kézfogással jön létre az HTTP protokoll felett:
- A kliens HTTP-kérést küld a
Upgrade: websocketfejlécel, hogy átálljon a WebSocket protokollra. - A WebSocket támogatással rendelkező szerver megerősítéssel válaszol, és kétirányú kapcsolatba lép.
A telepítés után:
- A kliens és a szerver folyamatos TCP-kapcsolatot tart fenn.
- Mindkét fél bármikor küldhet üzenetet anélkül, hogy újra kellene kapcsolódni.
Az architektúrában ez lehetővé teszi a valós idejű kommunikációt, például chat vagy adatok valós idejű frissítése esetén.
Go nyelven a gorilla/websocket csomag használatával példa:
var upgrader = websocket.Upgrader{}
func wsHandler(w http.ResponseWriter, r *http.Request) {
conn, err := upgrader.Upgrade(w, r, nil)
if err != nil {
log.Print("fejlesztési hiba:", err)
return
}
defer conn.Close()
for {
_, msg, err := conn.ReadMessage()
if err != nil {
break
}
// Üzenet feldolgozása
conn.WriteMessage(websocket.TextMessage, msg) // visszhang
}
}
Így a WebSocket kétirányú, állandó kapcsolatot biztosít az ügyfél és a szerver között.