Junior — Middle
¿Puede explicar el principio de funcionamiento del protocolo WebSocket y cómo garantiza una conexión constante entre el servidor y el cliente?
sobes.tech AI
Respuesta de la IA
WebSocket es un protocolo que proporciona una conexión bidireccional persistente entre el cliente y el servidor sobre TCP. A diferencia del HTTP clásico, donde el cliente inicia las solicitudes, WebSocket permite que el servidor envíe datos al cliente en cualquier momento.
Principio de funcionamiento:
- El cliente inicia una solicitud HTTP con el encabezado
Upgrade: websocketpara cambiar al protocolo WebSocket. - El servidor confirma la transición y se establece una conexión persistente.
- Después de establecer la conexión, el cliente y el servidor pueden intercambiar mensajes en tiempo real sin necesidad de solicitudes HTTP repetidas.
Esto permite crear aplicaciones con baja latencia, como chats, juegos, terminales financieros.
Ejemplo de uso de WebSocket en iOS (Swift):
import Foundation
let url = URL(string: "wss://example.com/socket")!
let webSocketTask = URLSession.shared.webSocketTask(with: url)
webSocketTask.resume()
// Enviar mensaje
let message = URLSessionWebSocketTask.Message.string("¡Hola servidor!")
webSocketTask.send(message) { error in
if let error = error {
print("Error al enviar: \(error)")
}
}
// Recibir mensajes
func receive() {
webSocketTask.receive { result in
switch result {
case .failure(let error):
print("Error al recibir: \(error)")
case .success(let message):
switch message {
case .string(let text):
print("Mensaje recibido: \(text)")
default:
break
}
receive() // seguir escuchando
}
}
}
receive()
De esta forma, WebSocket proporciona una conexión eficiente y persistente para el intercambio de datos en tiempo real.