Sobes.tech
Junior — Middle

Môžete vysvetliť princíp fungovania protokolu WebSocket a ako zabezpečuje trvalé spojenie medzi serverom a klientom?

sobes.tech AI

Odpoveď od AI

WebSocket je protokol, ktorý zabezpečuje trvalé obojsmerné spojenie medzi klientom a serverom cez TCP. Na rozdiel od klasického HTTP, kde klient iniciuje požiadavky, WebSocket umožňuje serveru posielať dáta klientovi kedykoľvek.

Princíp fungovania:

  1. Klient začína HTTP požiadavkou s hlavičkou Upgrade: websocket, aby prešiel na WebSocket protokol.
  2. Server potvrdí prechod a nadviaže sa trvalé spojenie.
  3. Po nadviazaní spojenia môžu klient a server vymieňať správy v reálnom čase bez potreby opakovaných HTTP požiadaviek.

Toto umožňuje vytvárať aplikácie s nízkou latenciou, ako sú chaty, hry, finančné terminály.

Príklad použitia WebSocket v iOS (Swift):

import Foundation

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

webSocketTask.resume()

// Odoslanie správy
let message = URLSessionWebSocketTask.Message.string("Ahoj server!")
webSocketTask.send(message) { error in
    if let error = error {
        print("Chyba pri odoslaní: \(error)")
    }
}

// Prijímanie správ
func receive() {
    webSocketTask.receive { result in
        switch result {
        case .failure(let error):
            print("Chyba pri prijímaní: \(error)")
        case .success(let message):
            switch message {
            case .string(let text):
                print("Prijatá správa: \(text)")
            default:
                break
            }
            receive() // pokračovať v počúvaní
        }
    }
}

receive()

Týmto spôsobom WebSocket zabezpečuje efektívne a trvalé spojenie pre výmenu dát v reálnom čase.