Sobes.tech
Junior — Middle

Kunt u het verschil uitleggen tussen WebSocket-protocollen en gewone sockets?

sobes.tech AI

Antwoord van AI

WebSocket is een protocol dat bovenop TCP werkt en een persistente, bidirectionele verbinding tussen client en server biedt. Het wordt gebruikt voor realtime gegevensuitwisseling met lage latentie, bijvoorbeeld in chats of games.

Normale sockets (TCP-sockets) zijn een mechanisme op een lager niveau voor het tot stand brengen van netwerkverbindingen. Ze definiëren geen specifiek gegevensoverdrachtprotocol, maar zorgen alleen voor de overdracht van bytes tussen twee punten.

Belangrijkste verschillen:

  • WebSocket werkt bovenop HTTP(S) en begint met een HTTP-verzoek om de verbinding tot stand te brengen (handshake), waarna het overschakelt naar een bidirectioneel modus.
  • Normale sockets vereisen een eigen implementatie van het gegevensuitwisselingsprotocol.
  • WebSocket is handig voor webapplicaties omdat het door browsers wordt ondersteund.

Voorbeeld van het gebruik van WebSocket in iOS (Swift):

import Foundation

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

task.send(.string("Hello")) { error in
    if let error = error {
        print("Fout bij verzenden: \(error)")
    }
}

task.receive { result in
    switch result {
    case .success(let message):
        switch message {
        case .string(let text):
            print("Ontvangen tekst: \(text)")
        default:
            break
        }
    case .failure(let error):
        print("Ontvangstfout: \(error)")
    }
}