我阅读了所有可以find的文档,论坛和示例,但无法find关于pushstream模块在以下情况下的行为的描述:
我正在使用nginx + pushstream在会话队列中为要求在服务器端花费一点时间的操作的用户传递状态消息。
使用长轮询技术,客户端在每次传递消息或达到连接超时时重新连接。
如果同时发送到订阅队列的消息很多,那么在重新连接时,客户端是否可能会错过一条消息? 或者这种情况是由pushstream模块处理的吗?
感谢大家花时间阅读和回答! 🙂
随机搜索一个不同的主题,在Google Groups中发现了一个回答这个问题的线索。
推送流模块开发者在响应中声明:
关于您的目标,您可以在连接新用户时将当前时间设置为If-Modified-Since标题。 这样它只会接收到这个时间之后发送的消息。
我只怕你可能会丢失一些消息使用长轮询没有存储消息或一个小的push_stream_max_messages_stored_per_channel。
来源: https : //groups.google.com/forum/#!topic/ nginxpushstream/ 4VutBQwx3zM
这意味着如果消息存储( push_stream_store_messages
设置为on),则不可能松散消息。
HTTP-Headers If-None-Match
和If-Modified-Since
将确保这一点。