Senior
¿Cómo funciona la conexión WebSocket en la arquitectura, en qué momento se establece y quién se comunica con quién?
sobes.tech AI
Respuesta de la IA
La conexión WebSocket se establece mediante un apretón de manos especial sobre el protocolo HTTP:
- El cliente envía una solicitud HTTP con el encabezado
Upgrade: websocketpara cambiar al protocolo WebSocket. - El servidor, que soporta WebSocket, responde con una confirmación y cambia a una conexión bidireccional.
Después de la instalación:
- El cliente y el servidor mantienen una conexión TCP persistente.
- Ambas partes pueden enviar mensajes en cualquier momento sin necesidad de volver a establecer la conexión.
En la arquitectura, esto permite implementar comunicación en tiempo real, por ejemplo, chat o actualización de datos en tiempo real.
Ejemplo en Go usando el paquete gorilla/websocket:
var upgrader = websocket.Upgrader{}
func wsHandler(w http.ResponseWriter, r *http.Request) {
conn, err := upgrader.Upgrade(w, r, nil)
if err != nil {
log.Print("error de actualización:", err)
return
}
defer conn.Close()
for {
_, msg, err := conn.ReadMessage()
if err != nil {
break
}
// Procesamiento del mensaje
conn.WriteMessage(websocket.TextMessage, msg) // eco
}
}
De esta forma, WebSocket proporciona una conexión bidireccional y persistente entre cliente y servidor.