当前位置:首页 >专题 >Go SSE 实时推送与断线恢复工程实践专题
Go SSE 实时推送与断线恢复工程实践专题
官方入口与协议基础
先理解 SSE 事件格式、HTTP 刷新能力和请求生命周期
Go net/http 包参考
ResponseWriter、Flusher、Request.Context、Server 与 Transport 的当前 API 参考。
Go ResponseController 源码与文档
覆盖 Flush、写截止时间、FullDuplex 等 ResponseController 能力。
Go HTTP Server 文档
官方说明 Flusher、代理缓冲、ResponseWriter 和连接关闭行为。
MDN:使用 Server-sent events
覆盖 EventSource、message/custom event、text/event-stream、错误和关闭。
MDN:Server-sent events API
解释 SSE 的单向通信模型、EventSource 接口和浏览器连接限制。
Go Request Context 文档
说明入站请求在客户端连接关闭或处理结束时的取消语义。
Go HTTP Server 超时字段
参考 ReadHeaderTimeout、WriteTimeout、IdleTimeout 等服务端边界。
Go httptest 测试工具
使用 ResponseRecorder、测试服务器和响应结果验证 Handler 行为。
站内 SSE 与流式推送实践
从最小接口到断线清理、超时预算与生产背压
Go http.ResponseController 有什么用?Flush、写超时和 FullDuplex 这样理解
常见问题
覆盖 SSE 上线前最容易误判的可靠性边界
SSE 调用 Flush 后客户端一定马上收到吗?
不一定。Go 的 Flush 只把服务端和 HTTP 实现中的缓冲向下推进,代理、网关或浏览器仍可能缓冲;应检查 text/event-stream、代理配置和实际到达延迟。
浏览器断线后 SSE 会自动重连吗?
EventSource 通常会自动重连,但服务端仍需设计事件 ID、幂等消费、Last-Event-ID 或可接受的丢失窗口;业务任务也必须监听 Request.Context 并停止。
SSE 和 WebSocket 应该怎么选?
SSE 是基于 HTTP 的服务端到客户端单向事件流,浏览器接入简单并自带重连;需要双向低延迟通信、二进制帧或更强协议控制时再考虑 WebSocket。
SSE 如何避免慢客户端拖垮服务?
为事件队列设置上限,监控写出延迟和连接数,对过期或跟不上的客户端主动断开;生产者应响应 Context 取消,必要时按租户或连接设置配额。
相关专题
继续查看相近方向内容
-
- Go compress/gzip 怎么读取压缩成员
- 2分钟前 144浏览
-
- 琥珀沙丘月影手机壁纸如何把月面放到锁屏上方
- 6分钟前 274浏览
-
- LovartAI设计平台怎么开始?新手操作步骤
- 7分钟前 242浏览
-
- Go methodset 如何限定方法集
- 8分钟前 173浏览
-
- 农产品批发采购如何核对检测报告和批次信息
- 11分钟前 155浏览
-
- Go archive/tar 如何控制目录路径
- 12分钟前 248浏览
-
- CSS container query怎么配置或排查
- 16分钟前 291浏览
-
- Go methodset 出错时怎么查值调用
- 17分钟前 235浏览

