Sobes.tech
Senior

Ako funguje WebSocket spojenie v architektúre — kedy sa vytvára a kto s kým komunikuje?

sobes.tech AI

Odpoveď od AI

Pripojenie WebSocket sa zriaďuje prostredníctvom špeciálneho handshake nad protokolom HTTP:

  1. Klient odošle požiadavku HTTP s hlavičkou Upgrade: websocket, aby prešiel na protokol WebSocket.
  2. Server podporujúci WebSocket odpovie potvrdením a prejde na obojsmerné spojenie.

Po nadviazaní:

  • Klient a server udržiavajú trvalé TCP spojenie.
  • Obidve strany môžu kedykoľvek posielať správy bez nutnosti opätovného nadviazania spojenia.

V architektúre to umožňuje realizáciu komunikácie v reálnom čase, napríklad chat alebo aktualizácie dát v reálnom čase.

Príklad v Go s použitím balíka 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("chyba pri upgrade:", err)
        return
    }
    defer conn.Close()

    for {
        _, msg, err := conn.ReadMessage()
        if err != nil {
            break
        }
        // Spracovanie správy
        conn.WriteMessage(websocket.TextMessage, msg) // odraz
    }
}

Týmto spôsobom WebSocket zabezpečuje obojsmerné, trvalé spojenie medzi klientom a serverom.