Skip to content

Server-Sent Events

Use sse() para criar uma resposta text/event-stream com eventos serializados pelo Empilha.

Evento único ou lista

ts
import { sse } from "empilha/http";

return sse([
  { event: "ready", id: "1", data: { ok: true } },
  { event: "message", data: "Olá" },
]);

Strings são enviadas como data. Objetos são serializados como JSON. Também é possível fornecer um AsyncIterable para produzir eventos sob demanda:

ts
async function* notifications() {
  yield { event: "connected", data: { at: Date.now() } };
  yield { event: "message", data: { text: "novo item" } };
}

return sse(notifications());

Campos do evento

CampoUso
dataconteúdo obrigatório do evento
eventnome opcional consumido pelo listener do cliente
ididentificador para reconexão
retryintervalo de reconexão em milissegundos

O helper configura Content-Type, Cache-Control e Connection para o protocolo SSE. O encerramento ou erro do iterável encerra o stream.

Feito para APIs que continuam simples quando crescem.