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)")
}
}