Skip to content

SSE学习相关

语言 : TypeScript | 原生 : TransformStream, ReadableStream

代表项目

  • minecraft-dev - 将DeepSeek流式输出实时转发至浏览器,生成过程逐token可视化

实现历程

核心实现

 后端建立TransformStream管道,AI每到一个delta就包装成data: {...}\n\n写入;前端按行解析SSE事件、更新响应式状态,实现打字机效果以及阶段切换提示(generating / reviewing / reworking)。

typescript
// 后端:逐chunk推送delta事件
const { readable, writable } = new TransformStream<Uint8Array>();
const writer = writable.getWriter();
await writer.write(encoder.encode(
    `data: ${JSON.stringify({ type: "delta", content: delta })}\n\n`
));

// 前端:按行切分、解析、同步到响应式状态
const lines = buffer.split("\n");
for (const line of lines) {
    if (!line.startsWith("data:")) continue;
    const evt = JSON.parse(line.slice(5).trim());
    if (evt.type === "delta") genTask.streamingContent += evt.content;
}