我做二郎彗星聊天。我只用了消息运输一个连接(长轮询)。但是,如你所知,在长轮询连接不能保持连接所有的时间。每一个新的消息来或者达到超时时间,这将打破,然后再连接到服务器。如果一条消息被连接之前发送重新连接,它是保持聊天的完整性的问题。

还有,如果用户与彗星聊天打开多于一个窗口中,所有的聊天消息必须保持同步,这意味着用户可以有许多长轮询连接。因此,它是很难保持准时交货的每封邮件。

我应该建立为每个连接一个消息队列?或者还有什么更好的办法来解决这个问题?

有帮助吗?

解决方案

有关我似乎有每个用户连接到聊天一个过程/消息队列简单的方法(甚至具有多于一个的聊天窗口)。比跟踪最后一条消息的时间标记的聊天窗口应用程序,并且重新连接请求该时间戳之后的消息。邮件队列应过程保持消息只为合理的时间跨度。在这种情况下重新连接都是根据客户需要。在另一种情况下,你可以发送某种哈特从服务器击败,但对我来说似乎不太可靠。它不解决与断开比超时的其他原因的问题。有服务器侧排队根据客户一个队列的许多变型中,每用户,每聊天室,每...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top