104 | Revolución en tiempo real: Inmersión en el mundo de WebSockets y Long Polling
Publicado el 12.09.2025
Introducción
Los usuarios modernos esperan que las aplicaciones web funcionen con la misma rapidez y capacidad de respuesta que las aplicaciones nativas. Chats, cotizaciones en bolsa, edición colaborativa de documentos: todos estos escenarios requieren intercambio de datos instantáneo. En este artículo analizaremos cómo funciona el Long Polling, por qué fue reemplazado por WebSockets, y cómo configurar correctamente el soporte de estas tecnologías en los servidores web más populares.
El problema del tiempo real y la primera solución: Long Polling
HTTP fue diseñado originalmente bajo el modelo solicitud-respuesta: el cliente hace una petición al servidor, el servidor responde y cierra la conexión. Para aplicaciones dinámicas esto resulta inconveniente.
Long Polling
Long Polling se convirtió en una solución de compromiso:
- El cliente envía una solicitud.
- El servidor espera a que aparezcan datos y no responde de inmediato.
- En cuanto hay datos — el servidor responde.
- El cliente recibe la respuesta y abre inmediatamente una nueva conexión.
Ventajas:
- menos solicitudes innecesarias que con el polling habitual;
- los datos se entregan con mínima latencia.
Desventajas:
- sobrecarga de HTTP (cabeceras, sesiones);
- la escalabilidad sufre con miles de conexiones.
Comunicación bidireccional real: WebSockets
WebSockets cambiaron radicalmente el enfoque. Después del handshake por HTTP se realiza un “upgrade” de la conexión, que permanece abierta y permite al servidor y al cliente intercambiar datos en ambas direcciones.
Ventajas clave:
- full-duplex — intercambio bidireccional sin solicitudes adicionales;
- una sola conexión TCP — menos sobrecarga;
- baja latencia — ideal para chats, juegos, plataformas de trading;
- eficiencia — solo se transmite la carga útil.
Configuración del soporte para WebSockets
Nginx
En la configuración es importante reenviar explícitamente las cabeceras Upgrade y Connection:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend_server;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}
proxy_http_version 1.1;— obligatorio para Upgrade.proxy_set_header Upgrade $http_upgrade;— transmite el protocolo.proxy_set_header Connection "upgrade";— permite el upgrade.
HAProxy
HAProxy soporta WebSockets “out of the box”, pero es importante configurar los timeouts:
frontend http_front
bind *:80
default_backend http_back
backend http_back
balance roundrobin
server server1 10.0.0.10:8080 check
timeout tunnel 1h
timeout tunnel 1h;— previene cortes en conexiones de larga duración.
Caddy
Caddy hace todo automáticamente. Basta con una configuración básica:
example.com {
reverse_proxy localhost:8080
}
Si se necesita más control:
example.com {
reverse_proxy /ws/* localhost:8080 {
header_up -Origin
}
}
Caddy maneja el Upgrade/Connection por sí mismo, evitando ediciones manuales.
¿En qué mejora esto la experiencia de los sitios?
- Interactividad: chat, notificaciones y acciones de juego ocurren al instante.
- Reducción de carga: no hay peticiones constantes → ahorro de recursos.
- Eficiencia: las aplicaciones son más reactivas y se acercan a lo “en vivo”.
Conclusión
Long Polling fue el primer paso hacia el tiempo real, pero hoy en día el estándar de facto son los WebSockets. Entender los principios de su funcionamiento y configurar correctamente el proxy en Nginx, HAProxy o Caddy es una habilidad importante para el ingeniero DevOps y el desarrollador web moderno.
Recursos
Reseñas relacionadas
Gracias a Mijaíl por su disposición. Hablamos por teléfono; me explicó cómo hacerlo yo mismo. Es la segunda vez que recurro a él: todo genial y muy rápido.
kireevk · Consulta sobre nginx proxy manager y portainer
Comprador acostumbrado25.02.2025 · ⭐ 5/5
Gracias a Михаил por su amabilidad. Hablamos por teléfono, me explicó cómo hacerlo por mi cuenta. Es la segunda vez que recurro, todo genial y rápido.
Quiero expresar mi enorme agradecimiento al especialista que me configuró las URLs amigables en OpenCart. Fue fácil y sencillo, y me alegra haber encontrado finalmente a un profesional que lo hizo todo con calidad y sin complicaciones. Antes cambié a cuatro especialistas y cada vez surgían problemas con la configuración, pero esta persona resolvió la tarea a la perfección.
apande · Configuración de Nginx y OpenCart
Un comprador muy poderoso07.09.2024 · ⭐ 5/5
Quiero expresar mi enorme agradecimiento al especialista que me configuró las URLs amigables en OpenCart. Configurar las URLs amigables resultó fácil y sencillo, y me alegra haber finalmente encontrado a un profesional que lo hizo todo con calidad y sin complicaciones innecesarias. Antes de esto cambié a cuatro especialistas, y cada vez surgían problemas con la configuración, pero esta persona resolvió la tarea a la perfección.
Excelente trabajo, no es la primera vez que recurro; encuentra soluciones a problemas complejos. Lo recomiendo.
Evgeni8j · Nginx rate limit
Comprador profesional-experto10.05.2024 · ⭐ 5/5
Excelente trabajo, recurro no por primera vez, encuentra soluciones a problemas complejos. Recomiendo.
¡Excelente trabajo! Cumplió con la tarea a tiempo y sin errores. Fue un placer colaborar, lo recomiendo.
Evgeni8j · Configuración de Nginx
Comprador profesional-experto03.05.2024 · ⭐ 5/5
¡Excelente trabajo! Completó la tarea encomendada a tiempo y sin errores. Fue un placer colaborar, lo recomiendo.
Excelente especialista, se adentró en el problema, lo entendió y lo solucionó. Lo recomiendo.
Evgeni8j · Corrección de la expresión regular en location de nginx
Comprador profesional-experto21.03.2024 · ⭐ 5/5
Excelente especialista, se involucró en el problema, lo entendió y lo solucionó. Recomiendo.
Había que resolver un problema con el certificado SSL en el servidor, que había sido emitido mediante Ngnix Proxy manager. Mijaíl aclaró todos los detalles de cómo tengo todo configurado, pidió accesos para evaluar la viabilidad de la solución, ya que antes no se había enfrentado a un servicio similar. Se familiarizó rápidamente y resolvió mi problema. Colaboración perfecta)
kireevk · Diagnóstico de Nginx Proxy Manager en un contenedor Docker y solución del problema
Comprador acostumbrado15.03.2024 · ⭐ 5/5
Necesitaba resolver un problema con el certificado SSL en el servidor, que fue emitido a través de Ngnix Proxy manager. Mikhail aclaró todos los detalles sobre cómo tengo todo organizado, pidió accesos para evaluar la viabilidad de resolver la tarea, ya que antes no se había enfrentado a un servicio similar. Se ocupó rápidamente y resolvió mi problema. Cooperación perfecta)