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
| Campo | Uso |
|---|---|
data | conteúdo obrigatório do evento |
event | nome opcional consumido pelo listener do cliente |
id | identificador para reconexão |
retry | intervalo 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.