因为EventSource.close会把原对象置为CLOSED,同一个对象不会继续走普通断线的自动重连流程。按EventSource.close定义和HTML标准的重连算法,close会中止fetch并把readyState置为2(CLOSED),重连算法遇到CLOSED就返回;这不是服务端retry间隔没到,也不能按普通断线路径理解。适用边界是EventSource关闭路径与关闭时点,不混WebSocket或客户端包装。

观察时要看调用顺序和状态。若日志显示先主动close,再读readyState为2,之后没有新的连接请求,符合上述关闭路径;已经closed再调用close无动作,也不会把状态改回CONNECTING。若看到的是网络中断、服务端结束流等非主动close路径,才属于另一类观察,不能拿本文结论套用。具体浏览器实现与支持情况另核。
判断条件的关键不是“连接断没断”,而是“谁把状态置为CLOSED”。主动close后原对象不能当普通断线等待自动重连;应用若要继续接收,可以另建新对象,但新对象不能被当成自动继承旧对象恢复位置。应核服务端是否支持恢复、保留原消息ID并按业务去重,不能承诺必然续传;不能擅自重放未知业务,也不能把改服务端配置当成默认修复。风险在于把已关闭对象当成会自愈的连接,会浪费排查时间;更需防的是为了“续传”而盲目重放消息,造成业务重复或状态错乱。
下一步先确认业务是否允许续传。允许时,记录最后已处理消息ID,另建新对象并走业务去重,再观察新连接是否建立;不允许时,保持关闭并明确页面状态,不要反复调用close期待变化。若只是普通断线,另按非主动关闭路径排查。
任城区台式电脑用户可拨400-877-9605,先整理原EventSource关闭顺序、消息ID与恢复去重约定,不盲目重新处理未知业务。电脑快修网提供信息展示与第三方维修对接,具体地址、电脑侧检查是否支持及安排需当次核实,启用范围不代表即时履约。