关于appengine的聊天应用程序
我愿意在App Engine上实现一个聊天网站。 但我发现App Engine不允许我使用服务器推送。 (因为它将在30秒后杀死响应)。
-
那么可以使用的另一种方法是什么? 民意调查会导致糟糕的用户体验吗? 意味着用户必须等待一段时间才能从服务器检索新消息?
-
什么是理想的轮询间隔?
-
如果您使用非常小的轮询间隔,我的带宽是否会耗尽? 我会遇到性能问题吗?
这是一个相当古老的问题,但我一直在寻找类似的答案。 我认为Channel API
( http://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
- 将Google AppEngine与胖客户端集成
- 使用UrlRewriteFilter从页面中删除.html扩展名? – 使用GAE
- Google App Engine中blobstore对象的1MB配额限制?
- 是否可以在谷歌应用引擎上部署cakephp应用程序?
- Paypal Sandbox交易未显示
- 如何在Servlets中插入JSPfunction?
- 如何在ContainerRequest中获取会话对象以使用注释@RolesAllowed(Role_user)?
- 持久保存@Embeddable的@ElementCollection(Google App Engine,datanucleus)
- GWT:在服务器端调用与客户端相同的RPC方法