videocalling
Illustration of WebSocket in video calling

WebSocket

glossary.categories.protocol

Un protocolo de comunicación que proporciona canales de comunicación full-duplex sobre una única conexión TCP.

¿Qué es WebSocket?

WebSocket es un protocolo de comunicación que proporciona un canal de comunicación full-duplex (bidireccional) sobre una única conexión TCP. A diferencia de HTTP, donde el cliente siempre debe iniciar las solicitudes, WebSocket permite que tanto el cliente como el servidor envíen datos en cualquier momento.

WebSocket en videollamadas

En aplicaciones de videollamada, WebSocket es el mecanismo de transporte más común para la señalización de WebRTC. La señalización es el proceso de intercambiar ofertas/respuestas SDP y candidatos ICE entre pares antes de que una conexión directa pueda establecerse.

WebSocket es ideal para la señalización porque proporciona:

  • Baja latencia: Conexión persistente que elimina la sobrecarga del handshake HTTP para cada mensaje.
  • Comunicación bidireccional: El servidor puede enviar mensajes de señalización al cliente instantáneamente (por ejemplo, "alguien quiere llamarte").
  • Basado en eventos: Los mensajes se entregan en cuanto llegan, sin necesidad de polling.

WebSocket vs. WebRTC

WebSocket y WebRTC son tecnologías complementarias, no competitivas. WebSocket se usa para señalización (intercambio de metadatos de control) y datos de baja frecuencia como chat. WebRTC se usa para flujos de medios de alta frecuencia (audio/video). Una aplicación de videollamada típica usa ambos: WebSocket para configurar y gestionar la llamada, y WebRTC para los flujos de medios reales.