Server Sent Events
Create a server sent events stream using a generator function.
ts
import { Route } from "ovr";
// simulate latency
const delay = () => new Promise((r) => setTimeout(r, 300));
const sse = Route.get("/sse", (c) => {
// set the content-type header to create a SSE
c.res.headers.set("content-type", "text/event-stream");
// passed into `render.stream`
return async function* () {
yield "data: server\n\n";
await delay();
yield "data: sent\n\n";
await delay();
yield "data: event\n\n";
};
});
Check out the server sent events demo.