跳到主要内容

2 篇博文 含有标签「EventSource」

查看所有标签

EventSource 是什么,为什么 Agent 流式接收最后都换成了 fetch + ReadableStream

· 阅读需 33 分钟

「Agent 为什么都用 fetch + ReadableStream 读流?EventSource 不是也能收 SSE 吗?」

这个问题问得对,但流传的答案「大厂从 SSE 换成了 ReadableStream」说得不准。真实情况是:

EventSource 是浏览器内置的 SSE 客户端,它在「打开一个 URL、持续收通知」这件事上是满分答案。但 Agent 场景需要的几件事——发 POST、带请求头、看状态码——它一件也做不到,重连语义也完全不由你控制。于是大家保留了 SSE 的帧格式,只把「读它的那只手」换成了 fetch + ReadableStream。

这篇按这条线讲透:① EventSource 到底是什么 → ② 为什么 Agent 场景要换掉它 → ③ 换成 fetch + ReadableStream 之后怎么写(含可跑的最小实现)→ ④ 流式端点的三个生产雷区 → ⑤ 这套也不够用时,什么时候必须上 WebSocket / WebRTC。

正文的实测都在本机 Node 上跑出来,脚本随仓库留档在 source/stream-lab/。

SSE 是什么:HTTP 上的服务端单向推送(含最小可跑案例)

· 阅读需 7 分钟

最近在写大模型 API 的流式(SSE),发现不少人分不清 SSE、WebSocket、长轮询的区别。这篇把 SSE(Server-Sent Events,服务端推送事件)单独拎出来讲透:它是什么、长什么样、什么时候用它,最后给一个原生 Node、零依赖的最小案例,跑起来给你看真实数据流。