Saltar al contenido

Server-Sent Events

Server-Sent Events transmite avisos de texto del servidor al cliente por HTTP, por ejemplo sobre el avance de un trabajo en segundo plano.

También conocido comoSSE
APIs y contratos de datos

El mecanismo Server-Sent Events, o SSE, transmite avisos de texto del servidor al cliente mediante una conexión HTTP. En el navegador, EventSource ofrece la interfaz; el flujo usa text/event-stream. La conexión es unidireccional. Los comandos del cliente al servidor necesitan otra vía, como solicitudes HTTP normales.

Un aviso sobre un informe en curso

Un portal ficticio recibe este bloque de evento:

id: evt-12
event: job-status
data: {"jobId":"J-52","status":"running"}

La línea vacía termina el bloque. El identificador, el tipo de evento y los datos cumplen funciones distintas. Aquí el servidor informa de una creación en curso; el aviso no significa que el archivo esté listo. Los valores son un ejemplo propio.

Tras una interrupción recuperable, EventSource puede reconectarse automáticamente. Un identificador de evento previamente establecido y no vacío se comunica mediante Last-Event-ID. El servidor debe decidir si vuelve a ofrecer las notificaciones que faltan y cómo lo hace. El identificador no crea un historial de eventos almacenado.

La aplicación debe gestionar, por tanto, las notificaciones duplicadas y un historial que ya no esté disponible, por ejemplo consultando de nuevo el estado actual del trabajo. SSE no garantiza que una operación de negocio se ejecute exactamente una vez. El acceso al proyecto y al trabajo también debe comprobarse al conectar y al entregar los avisos.

Fuentes

Artículos sobre el tema

Su proyecto con ASES

Descríbanos su proyecto. Le responderemos con una primera valoración.