2017-10-17 124 views
1

我正在使用SSE(EventSource API)将一些事件广播给客户端的网站上。在Android版Chrome浏览器的移动版本上测试我的网站时,我注意到当频道空闲大约五分钟时,连接丢失。移动电话上的服务器发送事件(SSE)连接丢失

我使用了几款安卓设备,使用不同的运营商和不同的浏览器,结果是一样的,无论屏幕是开还是关。 Desktop Chrome似乎可以让连接长时间保持活跃状态​​。

找不到任何有关这方面的信息,当试图调试问题时,我得到的只是从发送最后一个事件约3分半钟后的电话IP地址收到的TCP“FIN”数据包。

EventSource的onerror事件没有被解雇,所以我无法知道何时断开连接以启动新的连接。

有什么办法可以避免这个问题,或者我应该每隔30秒发一些假消息来防止连接空闲?

在此先感谢

回答

0

您可以设置retry领域树立reconnection timeEventSource实例

  • 如果字段名称是 “重试”

    • 如果该字段值仅由ASCII数字组成,然后将字段值解释为基数为10的整数并进行设置事件流的 与该整数的重新连接时间。否则,请忽略该字段。
+0

谢谢您的回答,客人!不幸的是,发送“重试”没有任何区别:它就像客户端断开连接并且无法再次建立连接。 – user683887

+0

您是否尝试过在少于五分钟的时间内发送消息? – guest271314

+0

是的,如果我正在发送消息,例如每两分钟一次,连接就不会丢失。所以我可以每分钟发送一次“保持活着”的消息,但我想知道是否有更好的方法来做到这一点。 – user683887

相关问题