Sobes.tech
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:

  1. Mijoz Upgrade: websocket sarlavhasi bilan HTTP soʻrov yuboradi va WebSocket protokoliga oʻtadi.
  2. 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.