Junior — Middle
Puteți explica principiul de funcționare al protocolului WebSocket și modul în care asigură o conexiune constantă între server și client?
sobes.tech AI
Răspuns de la AI
WebSocket este un protocol care asigură o conexiune bidirecțională persistentă între client și server pe TCP. Spre deosebire de HTTP-ul clasic, unde clientul inițiază solicitările, WebSocket permite serverului să trimită date către client în orice moment.
Principiul de funcționare:
- Clientul inițiază o solicitare HTTP cu antetul
Upgrade: websocketpentru a trece la protocolul WebSocket. - Serverul confirmă trecerea și se stabilește o conexiune persistentă.
- După stabilirea conexiunii, clientul și serverul pot schimba mesaje în timp real fără a fi nevoie de solicitări HTTP repetate.
Acest lucru permite crearea de aplicații cu latență scăzută, precum chat-uri, jocuri, terminale financiare.
Exemplu de utilizare WebSocket în iOS (Swift):
import Foundation
let url = URL(string: "wss://example.com/socket")!
let webSocketTask = URLSession.shared.webSocketTask(with: url)
webSocketTask.resume()
// Trimiterea unui mesaj
let message = URLSessionWebSocketTask.Message.string("Salut server!")
webSocketTask.send(message) { error in
if let error = error {
print("Eroare la trimitere: \(error)")
}
}
// Primirea mesajelor
func receive() {
webSocketTask.receive { result in
switch result {
case .failure(let error):
print("Eroare la primire: \(error)")
case .success(let message):
switch message {
case .string(let text):
print("Mesaj primit: \(text)")
default:
break
}
receive() // ascultare continuă
}
}
}
receive()
Astfel, WebSocket asigură o conexiune eficientă și persistentă pentru schimbul de date în timp real.