若尔所建之界面,需显进境、录文或实时更新,毋须遽用WebSockets。多般情形下,SSE乃更简且适之择。此乃服务器以HTTP推事件于客户端之友浏览器之法。思之如单行之活流:服务器送更新,浏览器则听之。
需此者,SSE实为良选。服务器至客户端之流。 欲简其制。
SSE 为何物?
SSE 乃 Server-Sent Events 之谓也。
此乃浏览器原生之法,使服务器能以 HTTP 推送更新于客户端。
何时宜用 SSE
| 宜用 SSE 者 | 不宜用 SSE 者 |
|---|---|
| 其沟通乃 单行之道 | 尔需双向交谈 |
| 尔欲避轮询之苦 | 尔需低时延之令行控制 |
| 尔欲轻便之HTTP流 | 尔需二进制传输 |
| 尔欲其浏览器可本地处理连接 |
例:
- 进度更新
- 实时日志
- 状态信息
- 任务完成通知
何以用服务器发送事件而非轮询?
轮询即浏览器频向服务器索新数据,此致额外流量与时序之拙。
SSE为优,盖因:
- 浏览器开一连接,
- 服务器即时发事件,
- 客户端立得更新,
- 免复询之劳。 小流式界面,SSE常为至简之选。
后端现块流,前端以听之。EventSource其流也直:
- 后端每块皆作SSE事件书之
- 前端实时受每块之至
- 界面随至而呈更新
- 应用视流之竟为常态之终,非谬误
此尤宜于进境之UI、日志及状况之更新
参考
全码在此处:
此例所行何事
后端
ASP.NET端点以SSE方式发送流式数据块。
前端
Angular服务创建EventSource,将流暴露于组件。























