SSE 实时推送(重连、心跳、背压与代理兼容)概述SSE 基于 HTTP 流式下发事件,简单且兼容良好。需设计重连、心跳与背压策略保障稳定性。关键实践与参数重连:客户端 `EventSource` 自动重连;服务端支持 `Last-Event-ID`。心跳:定期发送注释行 `:\n` 保持连接与穿透代理。背压:队列与限速,慢消费者丢弃或降级;按主题分流。代理兼容:禁用缓冲或设置合适 `X-Accel-Buffering: no` 等。示例(服务端)HTTP/1.1 200 OK Content-Type: text/event-stream Cache-Control: no-cache event: message\n data: {"text":"hello"}\n\n : \n id: 123\n event: update\n data: {...}\n\n 验证方法DevTools 观察事件流与重连;断网/代理场景下验证心跳与恢复。压测吞吐与尾延迟;慢消费者下的队列与丢弃策略生效。指标:连接数、重连次数、消息丢弃比例。注意事项仅单向推送;双向需求使用 WebSocket 或 Long Poll。对敏感数据加密与权限控制;避免泄露。与缓存与 CDN 协同,避免中间节点缓冲破坏时效。

发表评论 取消回复