2010-03-24 150 views
2

我愿意在App Engine上实现聊天网站。但是我发现App Engine不会允许我使用服务器推送。 (因为它会在30秒后杀死回应)。appengine上的聊天应用程序

  1. 那么可以使用其他方法 ?轮询会导致不好的用户 的经验?含义是否会让用户 等待一段时间 从服务器中检索新消息?

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

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

+0

阿克沙伊嗨, 你找到你的答案吗? 我也在寻找类似的东西。 – Himanshu 2011-02-17 15:47:56

回答

1

难道你不能只使用XMPP而不是网站吗?这将是一个更好的方法。投票肯定不会很好地扩展,绝对不会提供良好的用户体验。

XMPP with appengine

+0

GAE上的XMPP非常出色。目前我正在使用它为音乐应用程序实现管理控制台/管理员警报界面。它速度非常快,似乎没有使用很多带宽。然而,免费配额(http://code.google.com/appengine/docs/quotas.html#XMPP)对于流行的Web应用程序来说可能不会太远。 – mdm 2010-03-24 13:15:10

+0

@Robin:感谢您的回复。实际上我想实现一个网站,比如omegle.com.This Webisite不需要用户拥有uservname和passwd.Is在XMPP中必须使用该用户才能使用xmpp。还需要另一名成员在他的好友列表中与他聊天? – akshay 2010-03-24 13:43:02

+0

它将在2017年底关闭 – huuthang 2017-01-06 03:19:42

0

我握住连接(即不发送响应),直到它死,然后重新建立它听到周围的人说工作。虽然30秒没有那么多。

如果以这种方式完成,那么对于用户来说,每30秒轮询一次,它仍然会感觉更加敏感。

关于带宽使用情况:取决于有效负载,“典型”HTTP请求的范围可能从几百字节到几KB,特别是使用cookie。

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

2

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

+0

XMPP是一种即时消息协议。与其他用户进行交互绝对是一件好事。 – Robin 2011-08-23 11:58:47