Senior
Arxitekturada WebSocket ulanishi qanday ishlaydi — qachon o'rnatiladi va kim kim bilan muloqot qiladi?
sobes.tech AI
AIdan javob
WebSocket ulanishi HTTP protokoliga asoslangan maxsus qoʻl ushlash orqali oʻrnatiladi:
- Mijoz
Upgrade: websocketsarlavhasi bilan HTTP soʻrov yuboradi va WebSocket protokoliga oʻtadi. - WebSocket-ni qoʻllab-quvvatlaydigan server tasdiqlash bilan javob beradi va ikki tomonlama ulanishga oʻtadi.
Oʻrnatilgandan soʻng:
- Mijoz va server doimiy TCP ulanishini saqlab qoladi.
- Har ikkala tomon ham istalgan vaqtda xabar yuborishi mumkin, ulanishni qayta oʻrnatishga hojat qolmay.
Arxitekturada, bu real vaqtda muloqotni amalga oshirish imkonini beradi, masalan, chat yoki real vaqtda maʼlumotlarni yangilash.
Go tilida gorilla/websocket paketidan foydalanib misol:
var upgrader = websocket.Upgrader{}
func wsHandler(w http.ResponseWriter, r *http.Request) {
conn, err := upgrader.Upgrade(w, r, nil)
if err != nil {
log.Print("yangilash xatosi:", err)
return
}
defer conn.Close()
for {
_, msg, err := conn.ReadMessage()
if err != nil {
break
}
// Xabarni qayta ishlash
conn.WriteMessage(websocket.TextMessage, msg) // echo
}
}
Shunday qilib, WebSocket mijoz va server oʻrtasida ikki tomonlama, doimiy ulanishni taʼminlaydi.