← [ BACK_TO_NOTES ]

专题归档 · 2026 年 3 月(编辑分组,非实际写作日期)

MemoFlow:SSE 显示连接中,却收不到通知事件

EventSource 一直处于 CONNECTING 时,排查代理、中间件压缩与 SSE 缓冲。

页面显示的状态和服务端状态对不上

使用 SSE 推送通知时,我发现EventSource 的 readyState 可能一直停在 CONNECTING,onopen 不触发;与此同时,前端以为已经连接,服务端却报告没有对应连接。单靠前端一个“连接成功”标识,无法证明事件已经能端到端送达。

把链路拆成几层看

当时把注意力放在浏览器与 Vite 开发代理、Express 响应压缩、长连接的输出缓冲、跨域与重连上。记录中出现了 content-encoding: br 的线索,但不能仅凭它就断言每一次连接失败都由 Brotli 导致。

要观察的是:响应头是否支持事件流、数据是否及时 flush、代理是否缓冲、连接是否在超时前保持、服务端是否还保存着有效的订阅者。

复盘时不直接照搬旧配置

我开始检查 SSE 路由是否被压缩中间件缓存,以及 Vite 代理有没有正确转发数据流。不同 Express 和 Vite 版本的中间件行为可能不同,还是要根据实际网络响应与事件到达情况判断。

这和 Reminder → Schedule → Notification 的事件一致性问题 有关联:能建立长连接并不等于事件生产端和订阅端状态一致。

创建于 2026/3/5 更新于 2026/10/17
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本