Cómo Funciona WebSocket - Comprendiendo la Comunicación Bidireccional en Tiempo Real

10 min de lectura | 2025.12.13

¿Qué es WebSocket?

WebSocket es un protocolo que permite la comunicación bidireccional en tiempo real entre cliente y servidor. Se utiliza en aplicaciones que requieren inmediatez, como aplicaciones de chat, juegos en línea y visualización de cotizaciones bursátiles.

URL de WebSocket: Se utilizan ws:// (sin cifrar) y wss:// (cifrado con TLS).

Diferencias entre HTTP y WebSocket

CaracterísticaHTTPWebSocket
Dirección de comunicaciónCliente→ServidorBidireccional
ConexiónConectar/desconectar por cada solicitudPersistente
Server PushNo disponibleDisponible
OverheadEnviar encabezados HTTP cada vezSolo en la primera vez
Tiempo realBajoAlto

Handshake de WebSocket

# Solicitud del cliente
GET /chat HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==

# Respuesta del servidor
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade

Ejemplo de Implementación en JavaScript

const socket = new WebSocket('wss://example.com/chat');

socket.addEventListener('open', (event) => {
    console.log('Conexión exitosa');
    socket.send('Hello Server!');
});

socket.addEventListener('message', (event) => {
    console.log('Recibido:', event.data);
});

Socket.IO

Socket.IO es una biblioteca de alto nivel basada en WebSocket.

  • Fallback: Si WebSocket no está disponible, utiliza HTTP long polling
  • Reconexión automática: Se reconecta automáticamente en caso de desconexión
  • Función Room: Agrupa clientes

Resumen

WebSocket es un protocolo poderoso que permite la comunicación bidireccional en tiempo real. Es importante comprender las diferencias de características con HTTP y seleccionar e implementar apropiadamente según los requisitos de la aplicación.

← Volver a la lista