Senior
Kā darbojas WebSocket savienojums arhitektūrā — kad tas tiek izveidots un ar ko kas sazinās?
sobes.tech AI
Atbilde no AI
WebSocket savienojums tiek ar uzsākts, izmantojot īpašu handshake pār HTTP protokolu:
- Klients nosūta HTTP pieprasījumu ar galveni
Upgrade: websocket, lai pārietu uz WebSocket protokolu. - Serveris, kas atbalsta WebSocket, atbild ar apstiprinājumu un pārslēdzas uz divvirzienu savienojumu.
Pēc uzstādīšanas:
- Klients un serveris uztur pastāvīgu TCP savienojumu.
- Abi var jebkurā laikā sūtīt ziņojumus, nav nepieciešams atkārtoti izveidot savienojumu.
Šāda arhitektūra ļauj īstenot reāllaika komunikāciju, piemēram, čatu vai datu atjauninājumus reāllaikā.
Piemērs Go valodā ar gorilla/websocket paketi:
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 kļūda:", err)
return
}
defer conn.Close()
for {
_, msg, err := conn.ReadMessage()
if err != nil {
break
}
// Ziņojuma apstrāde
conn.WriteMessage(websocket.TextMessage, msg) // atbilde
}
}
Tādējādi WebSocket nodrošina divvirzienu, pastāvīgu savienojumu starp klientu un serveri.