关于appengine的聊天应用程序

时间:2010-03-24 12:37:21

标签: java google-app-engine chat polling server-push

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

  1. 那么可以采用其他方法 使用?轮询会导致糟糕的用户 经验?意思是用户 不得不等待一段时间 从服务器检索新消息?

  2. 什么是理想的民意调查 间隔?

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

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

XMPP with appengine

答案 2 :(得分:0)

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

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

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

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

答案 3 :(得分:0)

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

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