Junior — Middle
Kas saaksite selgitada WebSocket protokola tööpõhimõtet ja kuidas see tagab pideva ühenduse serveri ja kliendi vahel?
sobes.tech AI
Vastus AI-lt
WebSocket on protokoll, mis tagab püsiva kahe kahe vahel kliendi ja serveri vahel TCP üle. Erinevalt klassikalisest HTTP-st, kus klient algatab päringud, võimaldab WebSocket serveril saata andmeid kliendile igal ajal.
Tööpõhimõte:
- Klient algatab HTTP-päringu päisega
Upgrade: websocket, et üle minna WebSocket protokollile. - Server kinnitab ülemineku ja luuakse püsiv ühendus.
- Pärast ühenduse loomist saavad klient ja server vahetada sõnumeid reaalajas ilma korduvate HTTP-päringuteta.
See võimaldab luua madala latentsusega rakendusi, näiteks vestlusi, mänge, finantsterminale.
WebSocketi kasutamise näide iOS-is (Swift):
import Foundation
let url = URL(string: "wss://example.com/socket")!
let webSocketTask = URLSession.shared.webSocketTask(with: url)
webSocketTask.resume()
// Sõnumi saatmine
let message = URLSessionWebSocketTask.Message.string("Tere, server!")
webSocketTask.send(message) { error in
if let error = error {
print("Saatmise viga: \(error)")
}
}
// Sõnumite vastuvõtt
func receive() {
webSocketTask.receive { result in
switch result {
case .failure(let error):
print("Vastuvõtu viga: \(error)")
case .success(let message):
switch message {
case .string(let text):
print("Saadud sõnum: \(text)")
default:
break
}
receive() // kuulame edasi
}
}
}
receive()
Seega tagab WebSocket tõhusa püsiva ühenduse andmevahetuseks reaalajas.