SSE란
서버에서 클라이언트로 단방향 실시간 데이터를 보내는 HTTP 기반 프로토콜입니다. LLM 스트리밍에 많이 사용됩니다.
서버 (Express)
app.get("/stream", (req, res) => {
res.setHeader("Content-Type", "text/event-stream");
res.setHeader("Cache-Control", "no-cache");
res.setHeader("Connection", "keep-alive");
const send = (data: any) => {
res.write(`data: ${JSON.stringify(data)}\n\n`);
};
send({ message: "Connected" });
const interval = setInterval(() => send({ time: Date.now() }), 1000);
req.on("close", () => clearInterval(interval));
});클라이언트
const es = new EventSource("/stream");
es.onmessage = (e) => console.log(JSON.parse(e.data));
댓글 0