【发布时间】:2010-11-22 04:43:18
【问题描述】:
我正在与 Erlang 进行 Comet 聊天。我只使用一个连接(长轮询)进行消息传输。但是,如您所知,长轮询连接不能一直保持连接。每次有新消息到达或达到超时时间时,它都会中断,然后再次连接到服务器。如果在重新连接之前发送了一条消息,那么保持聊天的完整性就会出现问题。
此外,如果用户使用 Comet-chat 打开多个窗口,则所有聊天消息都必须保持同步,这意味着用户可以拥有大量长轮询连接。所以很难保证每条消息都按时送达。
我应该为每个连接建立一个消息队列吗?或者还有什么更好的方法来解决这个问题?
【问题讨论】:
-
许多浏览器都配置为每台服务器最多有 2 个活动连接。这是拥有所有订阅都通过的单一长轮询通信渠道的一个很好的理由。
标签: erlang message-queue comet chat long-polling