You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Server-Sent Events添加重试事件实现客户端每5秒重连

SSE 5秒自动重连实现方法

SSE标准协议原生支持重连间隔配置,无需额外编写客户端重连代码,只需要在服务端事件流中返回retry字段,遵循标准的SSE客户端(包括浏览器原生EventSource)就会自动按照指定间隔在连接断开后重连。

配置规则

  • retry字段的单位为毫秒,要实现5秒重连,设置值为5000即可
  • 该字段只需要在连接建立后、发送第一条业务数据前返回一次,就会对当前连接生命周期内的所有重连行为生效,无需每次推送消息都携带
  • 原有代码中1分钟后主动关闭连接的逻辑,会正常触发客户端按配置的间隔发起重连

修改后的代码

public void Message()  
{  
    Response.ContentType = "text/event-stream";  
    // 声明客户端重连间隔为5秒
    Response.Write("retry: 5000\n\n");
    Response.Flush();

    DateTime startDate = DateTime.Now;  
    while (startDate.AddMinutes(1) > DateTime.Now)  
    {  
        Response.Write(string.Format("data: {0}\n\n", DateTime.Now.ToString()));  
        Response.Flush();  

        System.Threading.Thread.Sleep(1000);  
    }  
      
    Response.Close();  
}

注意:如果你使用的是自定义SSE客户端、没有遵循标准协议实现自动解析retry字段的逻辑,只需要在连接断开、请求异常的回调中添加5秒定时器,定时器触发时重新建立SSE连接即可。

内容的提问来源于stack exchange,提问作者Shehan Pathirathna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 17:01:04