Sobes.tech
Junior — Middle

Můžete vysvětlit princip fungování protokolu WebSocket a jak zajišťuje trvalé spojení mezi serverem a klientem?

sobes.tech AI

Odpověď od AI

WebSocket je protokol, který zajišťuje trvalé obousměrné spojení mezi klientem a serverem přes TCP. Na rozdíl od klasického HTTP, kde klient iniciuje požadavky, WebSocket umožňuje serveru posílat data klientovi kdykoli.

Princip fungování:

  1. Klient zahájí HTTP požadavek s hlavičkou Upgrade: websocket pro přechod na WebSocket protokol.
  2. Server potvrdí přechod a naváže se trvalé spojení.
  3. Po navázání spojení mohou klient a server v reálném čase vyměňovat zprávy bez nutnosti opakovaných HTTP požadavků.

To umožňuje vytvářet aplikace s nízkou latencí, například chaty, hry, finanční terminály.

Příklad použití WebSocket v iOS (Swift):

import Foundation

let url = URL(string: "wss://example.com/socket")!
let webSocketTask = URLSession.shared.webSocketTask(with: url)

webSocketTask.resume()

// Odeslání zprávy
let message = URLSessionWebSocketTask.Message.string("Ahoj server!")
webSocketTask.send(message) { error in
    if let error = error {
        print("Chyba při odesílání: \(error)")
    }
}

// Přijímání zpráv
func receive() {
    webSocketTask.receive { result in
        switch result {
        case .failure(let error):
            print("Chyba při příjmu: \(error)")
        case .success(let message):
            switch message {
            case .string(let text):
                print("Přijatá zpráva: \(text)")
            default:
                break
            }
            receive() // pokračovat v poslouchání
        }
    }
}

receive()

Tímto způsobem WebSocket zajišťuje efektivní a trvalé spojení pro výměnu dat v reálném čase.