Junior — Middle
Vai jūs varat izskaidrot WebSocket protokola darbības principu un kā tas nodrošina pastāvīgu savienojumu starp serveri un klientu?
sobes.tech AI
Atbilde no AI
WebSocket ir protokols, kas nodrošina pastāvīgu divvirzienu savienojumu starp klientu un serveri pār TCP. Atšķirībā no tradicionālā HTTP, kur klients iniciē pieprasījumus, WebSocket ļauj serverim sūtīt datus klientam jebkurā laikā.
Darba princips:
- Klients iniciē HTTP pieprasījumu ar galveni
Upgrade: websocket, lai pārietu uz WebSocket protokolu. - Servers apstiprina pāreju, un tiek izveidots pastāvīgs savienojums.
- Pēc savienojuma izveides klients un serveris var apmainīties ar ziņojumiem reāllaikā bez nepieciešamības atkārtoti veikt HTTP pieprasījumus.
Tas ļauj izveidot zema aizkaves lietojumprogrammas, piemēram, čatus, spēles, finanšu termināļus.
WebSocket piemērs iOS (Swift):
import Foundation
let url = URL(string: "wss://example.com/socket")!
let webSocketTask = URLSession.shared.webSocketTask(with: url)
webSocketTask.resume()
// Ziņojuma sūtīšana
let message = URLSessionWebSocketTask.Message.string("Sveiki, server!")
webSocketTask.send(message) { error in
if let error = error {
print("Sūtīšanas kļūda: \(error)")
}
}
// Ziņojumu saņemšana
func receive() {
webSocketTask.receive { result in
switch result {
case .failure(let error):
print("Saņemšanas kļūda: \(error)")
case .success(let message):
switch message {
case .string(let text):
print("Saņemta ziņa: \(text)")
default:
break
}
receive() // turpinām klausīties
}
}
}
receive()
Tādējādi WebSocket nodrošina efektīvu pastāvīgu savienojumu datu apmaiņai reāllaikā.