Sobes.tech
Junior — Middle

Kunt u het principe van het functioneren van het WebSocket-protocol uitleggen en hoe het een constante verbinding tussen server en client garandeert?

sobes.tech AI

Antwoord van AI

WebSocket is een protocol dat een persistente, bidirectionele verbinding tussen client en server over TCP mogelijk maakt. In tegenstelling tot het klassieke HTTP, waarbij de client verzoeken initieert, stelt WebSocket de server in staat om op elk moment gegevens naar de client te sturen.

Werking principe:

  1. De client initieert een HTTP-verzoek met de header Upgrade: websocket om over te schakelen naar het WebSocket-protocol.
  2. De server bevestigt de overgang en er wordt een persistente verbinding tot stand gebracht.
  3. Na het opzetten van de verbinding kunnen client en server in realtime berichten uitwisselen zonder herhaalde HTTP-verzoeken.

Dit maakt het mogelijk om applicaties met lage latentie te creëren, zoals chatapplicaties, games, financiële terminals.

Voorbeeld van gebruik van WebSocket in iOS (Swift):

import Foundation

let url = URL(string: "wss://example.com/socket")!
let webSocketTask = URLSession.shared.webSocketTask(with: url)

webSocketTask.resume()

// Bericht versturen
let message = URLSessionWebSocketTask.Message.string("Hallo server!")
webSocketTask.send(message) { error in
    if let error = error {
        print("Fout bij verzenden: \(error)")
    }
}

// Berichten ontvangen
func receive() {
    webSocketTask.receive { result in
        switch result {
        case .failure(let error):
            print("Fout bij ontvangst: \(error)")
        case .success(let message):
            switch message {
            case .string(let text):
                print("Ontvangen bericht: \(text)")
            default:
                break
            }
            receive() // blijven luisteren
        }
    }
}

receive()

Op deze manier biedt WebSocket een efficiënte en persistente verbinding voor realtime gegevensuitwisseling.