2009-07-14 59 views
2

我在做Comet与Erlang和PHP聊天。但现在我认为我遇到了一个问题:轮询连接将在约一段时间(我将其设置为10秒)自动断开连接并重新连接,所以会有一段时间用户没有连接到聊天服务器。如果用户在那个时候发送消息,则该消息将会失效(没有人能够接收到)。如何避免彗星聊天中的死信息?

在客户端代码中,我使用jQuery与jsonp来实现轮询连接。有没有什么好方法可以解决这个问题?

在此先感谢〜

回答

0

当发送消息,只是还jQuery的立即重新连接,当它这样做,发送邮件。

1

您允许两个并发连接;将它们交错,这样一方正在连接(并将用户的消息推送到服务器),另一方正在监听。

1

在客户端未连接时存储所有消息的服务器上有会话进程。如果客户端没有连接一些(可配置的)时间,会话可能会消失。当客户端连接时,会话可以将所有排队的消息发送到连接。

+0

也许一个好主意,就像一个邮箱。但是如果我为每个连接建立一个邮箱,我必须考虑成本。有什么建议么? – 2009-08-03 06:22:04