2012-01-21 60 views
2

我读通所有的文档,论坛和例子我能找到,但无法找到如何在pushstream module的行为在以下情况的描述:使用nginx + pushstream模块进行长轮询可能会错过消息吗?

我使用nginx的+ pushstream在用户会话队列提供状态信息那些要求在服务器端稍微花点时间的操作。

使用长轮询技术,客户端在每次传递消息或达到连接超时时重新连接。

如果有很多消息同时发送到订阅队列,客户端可能在重新连接时错过消息吗?或者这种情况是由pushstream模块处理的吗?

感谢大家花时间阅读和回答! :-)

回答

3

一些随机搜索不同的主题在Google Groups中找到了回答问题的线索。

在响应的pushstream模块开发状态:

关于你的目标,你可以设置连接 为当前时间。新的用户连接时的If-Modified-Since头。因此,它将只收到 这段时间后发送的消息。

我只是怕你可能会丢失一些消息使用长轮询没有 存储消息或与一个小的 push_stream_max_messages_stored_per_channel。

来源:https://groups.google.com/forum/#!topic/nginxpushstream/4VutBQwx3zM

这意味着它是不可能失去的消息是否被存储的消息(push_stream_store_messages被设为ON)。
HTTP头部If-None-MatchIf-Modified-Since将确保这一点。

相关问题