【问题标题】:Is it possible to miss messages using long polling with nginx+pushstream module?使用 nginx+pushstream 模块的长轮询是否有可能错过消息?
【发布时间】:2012-01-21 16:05:32
【问题描述】:

我阅读了所有我能找到的文档、论坛和示例,但找不到关于 pushstream module 在以下情况下如何表现的描述:

我正在使用 nginx+pushstream 在会话队列中为请求在服务器端花费一些时间的操作的用户传递状态消息。

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

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

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

【问题讨论】:

    标签: javascript nginx push message-queue


    【解决方案1】:

    对不同主题的随机搜索会在 Google 网上论坛中找到一个回答该问题的线程。

    推流模块开发者在回复中表示:

    关于您的目标,您可以在连接时设置 If-Modified-Since 标头 作为新用户连接的当前时间。这样它只会收到 在此时间之后发送的消息。

    我只是担心您可能会在没有使用长轮询的情况下丢失一些消息 存储消息或用小 push_stream_max_messages_stored_per_channel。

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

    这意味着如果存储了消息(push_stream_store_messages 设置为开启),则不可能丢失消息。
    HTTP-Headers If-None-MatchIf-Modified-Since 将确保这一点。

    【讨论】:

      猜你喜欢
      • 2015-09-05
      • 2021-04-19
      • 2013-03-22
      • 1970-01-01
      • 2018-12-30
      • 2012-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多