Junior — Middle
Можете ли објаснити принцип функционисања протокола WebSocket и како он обезбеђује сталну везу између сервера и клијента?
sobes.tech АИ
Одговор од АИ
WebSocket je protokol koji obezbeđuje trajnu dvostranu vezu između klijenta i servera preko TCP-a. Za razliku od klasičnog HTTP-a, gde klijent inicira zahteve, WebSocket omogućava serveru da šalje podatke klijentu u bilo kom trenutku.
Princip rada:
- Klijent inicira HTTP zahtev sa zaglavljem
Upgrade: websocketza prelazak na WebSocket protokol. - Server potvrđuje prelaz i uspostavlja se trajna veza.
- Nakon uspostavljanja veze, klijent i server mogu razmenjivati poruke u realnom vremenu bez potrebe za ponovnim HTTP zahtevima.
Ovo omogućava kreiranje aplikacija sa niskom latencijom, poput čatova, igara, finansijskih terminala.
Primer korišćenja WebSocket-a u iOS (Swift):
import Foundation
let url = URL(string: "wss://example.com/socket")!
let webSocketTask = URLSession.shared.webSocketTask(with: url)
webSocketTask.resume()
// Slanje poruke
let message = URLSessionWebSocketTask.Message.string("Zdravo server!")
webSocketTask.send(message) { error in
if let error = error {
print("Greška pri slanju: \(error)")
}
}
// Primanje poruka
func receive() {
webSocketTask.receive { result in
switch result {
case .failure(let error):
print("Greška pri prijemu: \(error)")
case .success(let message):
switch message {
case .string(let text):
print("Primljena poruka: \(text)")
default:
break
}
receive() // nastavak slušanja
}
}
}
receive()
Na ovaj način, WebSocket obezbeđuje efikasno i trajno povezivanje za razmenu podataka u realnom vremenu.