关于appengine的聊天应用程序

我愿意在App Engine上实现一个聊天网站。 但我发现App Engine不允许我使用服务器推送。 (因为它将在30秒后杀死响应)。

  1. 那么可以使用的另一种方法是什么? 民意调查会导致糟糕的用户体验吗? 意味着用户必须等待一段时间才能从服务器检索新消息?

  2. 什么是理想的轮询间隔?

  3. 如果您使用非常小的轮询间隔,我的带宽是否会耗尽? 我会遇到性能问题吗?

这是一个相当古老的问题,但我一直在寻找类似的答案。 我认为Channel APIhttp://code.google.com/appengine/docs/java/channel/ )更适合这项任务。 根据我的理解,XMPP很适合与应用程序交互,但不能与其他用户交互。 Channel API通过HttpRequest实现推送通知。 我刚刚在这里找到了一个聊天室的例子: https : //bitbucket.org/keakon/channelchat

你不能只使用XMPP而不是网站吗? 这将是一个更好的方法。 轮询肯定不会很好地扩展,并且肯定不会提供良好的用户体验。

带有appengine的XMPP

我听说有人通过保持连接(即不发送任何响应)来解决这个问题,直到它死亡然后重新建立它为止。 30秒并不是那么多。

如果以这种方式完成,它仍然会比每30秒轮询对用户更敏感。

关于带宽使用:根据有效载荷,“典型”HTTP请求的范围可以从几百字节到几千字节,特别是使用cookie。

平均大小为每30秒5kB(悲观),每24小时总计大约14 MB。 也许您可以通过在Cookie中设置路径来减小大小,这样他们就无法发送这些连接。 也许你不需要每30秒再发送一次有效载荷。

是的渠道api是最好的解决方案,gwt甚至更好

http://www.dev-articles.com/article/Google-App-Engine-sending-messages-with-XMPP-393002