Las claves verificadas

  • SSE mantiene una conexión HTTP y entrega eventos desde el servidor hacia el cliente en una sola dirección. Ver evidencia
  • EventSource puede reconectarse y enviar el último identificador recibido. Ver evidencia
  • SSE usa el tipo MIME text/event-stream y mensajes separados por una línea en blanco. Ver evidencia
  • La elección depende de la dirección de los mensajes y de la capacidad de operar conexiones abiertas. Ver evidencia

Qué son los Server-Sent Events

Server-Sent Events (SSE) es un mecanismo para que un servidor envíe actualizaciones a una página mediante una conexión HTTP que permanece abierta. El navegador inicia la conexión y recibe eventos en una sola dirección: del servidor al cliente. La API EventSource del navegador procesa el flujo y puede volver a conectarse si la conexión se corta.

El formato usa texto con campos como event, data e id separados por líneas y un salto en blanco entre mensajes. WHATWG define el tipo MIME text/event-stream y reglas para interpretar cada evento. No es un canal bidireccional: si el navegador debe enviar acciones, usa solicitudes HTTP separadas.

Cuándo conviene usar SSE

SSE encaja en notificaciones, estados de trabajos, paneles y registros que avanzan de manera continua desde un servidor. El cliente no necesita preguntar cada pocos segundos si cambió algo y puede reaccionar apenas llega un evento. Para una respuesta larga, el servidor puede enviar fragmentos mientras mantiene la misma conexión.

La alternativa depende del flujo. Polling es más simple cuando las actualizaciones son escasas o la infraestructura no tolera conexiones abiertas. WebSocket permite mensajes en ambos sentidos y sirve para interacción en tiempo real. SSE resulta atractivo cuando el servidor publica y el navegador escucha, sin sumar un protocolo bidireccional.

Conexión HTTP de SSE con eventos y reconexión del navegador
Ilustración editorial: el cliente recibe eventos, guarda el último ID y puede reconectar. · VisteEsto · Fuente · VisteEsto editorial

Guía para implementar SSE sin perder eventos

Definí un identificador estable para cada evento y enviá un heartbeat si la infraestructura cierra conexiones inactivas. El navegador puede informar el último evento recibido mediante Last-Event-ID, pero el servidor necesita conservar suficiente historial para reanudar o indicar que el cliente debe sincronizar desde el estado actual.

Configurá el proxy y el servidor para no almacenar en buffer el flujo y enviá el encabezado correcto. Limitá la cantidad de conexiones por usuario, protegé el endpoint y cancelá la suscripción cuando la página se oculta o el usuario cierra sesión. Los eventos no reemplazan la autorización de la operación que representan.

Errores frecuentes y límites

Una conexión abierta consume recursos aunque no esté enviando datos. Medí conexiones activas, reconexiones, bytes, latencia y tiempo hasta el primer evento. Un balanceador o CDN puede imponer timeouts que corten el flujo; la aplicación debe tolerar esa interrupción y recuperar el estado sin duplicar notificaciones.

SSE transporta texto y está pensado para mensajes unidireccionales. Si se necesita audio, binarios o interacción de baja latencia en los dos sentidos, conviene evaluar otra tecnología. La decisión depende de la dirección de los mensajes, frecuencia, duración de la conexión y controles disponibles en la infraestructura.

Comparación entre SSE, polling y WebSocket según dirección de mensajes
Ilustración editorial: la dirección del flujo orienta la elección de tecnología. · VisteEsto · Fuente · VisteEsto editorial
Qué aporta VisteEsto: Nuestro trabajo en esta nota

VisteEsto convierte el protocolo en una decisión operativa: dirección de los mensajes, historial para reconexión, timeouts de infraestructura y límites por usuario.

Fuentes, actualizaciones y metodología 3 fuentes

Fuentes consultadas

Historial de actualización

  • Publicación inicial basada en el estándar WHATWG, MDN y la guía de arquitectura asíncrona de Microsoft sobre eventos del servidor y conexiones HTTP.

Cómo elaboramos esta nota

Definimos la consulta principal “Server-Sent Events qué son y cuándo convienen”, contrastamos los datos con 3 fuentes —2 primarias— y revisamos contexto, imágenes y posibles vacíos antes de publicar. Conocé nuestra política editorial y de verificación.

Siguiente historiaWebTransport: qué es y cuándo conviene