Saltar al contenido
Explorar conocimiento

concepto · intermedio · 2 min de lectura

WebSockets

WebSockets es un protocolo que permite comunicación bidireccional y en tiempo real entre cliente y servidor sobre una sola conexión TCP persistente.

No requiere conocimientos previos.

Alcance en breve

Cubre

  • WebSockets as a concept

No cubre

  • implementation details

Supone

  • The reader understands relevant fundamentals.

Resumen

WebSockets resuelve la limitación fundamental de HTTP: el servidor no puede iniciar comunicación con el cliente. Con HTTP tradicional, el cliente pregunta y el servidor responde —si el servidor tiene datos nuevos, el cliente no se entera hasta la próxima pregunta—. WebSockets crea un canal full-duplex donde ambas partes pueden enviar mensajes en cualquier momento.

La conexión empieza con un handshake HTTP —el cliente pide un upgrade a WebSocket— y luego se convierte en una conexión TCP persistente con un protocolo de frames propio. Una vez establecida, el servidor puede pushear datos al cliente sin que el cliente pregunte, ideal para chats, notificaciones en tiempo real, dashboards de monitoreo y juegos multijugador.

Alcance y supuestos

Cubre WebSockets como protocolo, su diferencia con HTTP y SSE, y casos de uso. Asume familiaridad con HTTP y redes.

Modelo mental

Una llamada telefónica versus un buzón de voz. HTTP es el buzón: dejás un mensaje y esperás que te llamen. WebSocket es la llamada: ambas partes hablan en tiempo real, los dos pueden iniciar la conversación, y la línea permanece abierta hasta que alguien cuelga.

Uso práctico

  • ✅ Chats, juegos, dashboards en tiempo real.
  • ❌ APIs REST para datos que cambian cada horas —un GET cada 60 segundos es más simple—.

Ejemplo trabajado: chat con WebSocket

El cliente abre wss://chat.example.com. El servidor acepta el upgrade. Cuando un usuario envía un mensaje, el servidor lo transmite a todos los clientes conectados a la sala. No hay polling, no hay HTTP requests repetidos. La latencia es la del viaje de ida y vuelta de un paquete TCP —milisegundos—.

Evidencia

Fuentes citadas