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:
- Klient začína HTTP požiadavkou s hlavičkou
Upgrade: websocket, aby prešiel na WebSocket protokol. - Server potvrdí prechod a nadviaže sa trvalé spojenie.
- 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.