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í:
- Klient zahájí HTTP požadavek s hlavičkou
Upgrade: websocketpro přechod na WebSocket protokol. - Server potvrdí přechod a naváže se trvalé spojení.
- 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.