Senior
Kako funkcioniše WebSocket veza u arhitekturi — u kom trenutku se uspostavlja i ko sa kim komunicira?
sobes.tech АИ
Одговор од АИ
WebSocket veza uspostavlja se putem posebnog handshake-a preko HTTP protokola:
- Klijent šalje HTTP zahtev sa zaglavljem
Upgrade: websocketda bi prešao na WebSocket protokol. - Server koji podržava WebSocket odgovara potvrdom i prelazi na dvosmernu konekciju.
Nakon uspostavljanja:
- Klijent i server održavaju trajnu TCP konekciju.
- Obje strane mogu u bilo kom trenutku slati poruke bez potrebe za ponovnim uspostavljanjem veze.
U arhitekturi, ovo omogućava implementaciju komunikacije u realnom vremenu, na primer, chat ili ažuriranje podataka u realnom vremenu.
Primer u Go jeziku koristeći 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("greška pri nadogradnji:", err)
return
}
defer conn.Close()
for {
_, msg, err := conn.ReadMessage()
if err != nil {
break
}
// Obrada poruke
conn.WriteMessage(websocket.TextMessage, msg) // odraz
}
}
Na ovaj način, WebSocket obezbeđuje dvosmernu, trajnu vezu između klijenta i servera.