服务器端事件中的差距的影响

时间:2014-01-19 15:03:13

标签: sinatra server-sent-events

我注意到在Chrome上,事件源似乎每隔1.5分左右触发一次文本流。我在Sinatra使用这个实现了一个pubsub,我有点担心火灾之间会发生什么。协议中有什么东西可以帮助解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您需要在数据Feed中添加自己的保持活动。您可以每隔N秒定期执行此操作,或仅在N秒静音后执行此操作;基本上哪个更容易编码。然后,keep-alive可以像SSE注释一样简单(冒号然后是几个LF),也可以是实际数据。

标准提到N可能是15秒;这可能比它需要的更频繁。如果您在90秒后注意到关闭,那么尝试N = 60?

另一种方法是找出哪个组件正在丢弃套接字并将其配置为不执行此操作。 (它不太可能是Chrome:虽然如果Firefox和其他浏览器没有相同的行为,那么就会发生一些有趣的事情。)