首页
学习
活动
专区
圈层
工具
发布
技术百科首页 >SSE >SSE如何处理重连机制?

SSE如何处理重连机制?

词条归属:SSE

1. 浏览器内置自动重连

EventSource API在连接非正常关闭时会自动发起重连,无需开发者编写任何重连代码。默认重连间隔为3000毫秒(3秒),该值由浏览器实现决定,部分浏览器可能使用不同默认值。

2. 服务器控制重连间隔

服务器可在事件流中随时下发retry:字段(值为毫秒数),浏览器收到后会将该值作为后续重连的等待时间。例如retry: 10000\n\n告知浏览器10秒后再尝试重连,适用于服务器即将重启、希望客户端延迟重连以减少无效连接请求的场景。

3. Last-Event-ID消息续传

每条SSE 消息可携带id:字段,浏览器会自动记录最后一次成功接收的消息ID。重连时浏览器会在HTTP请求头中自动附带Last-Event-ID: <最后收到的ID>,服务器收到后可查询该ID之后的新消息并补发给客户端,实现"至少一次"的消息传递保证。

4. 客户端主动控制重连

开发者可通过eventSource.close()主动关闭连接,此时浏览器不会再自动重连。如需实现自定义重连策略(如指数退避、最大重试次数限制),可在onerror回调中主动关闭EventSource并自行控制重连节奏,而非依赖浏览器默认行为。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券