Google应用程序引擎、Java和HTTP性能

Google应用程序引擎、Java和HTTP性能,java,android,http,google-app-engine,Java,Android,Http,Google App Engine,我和一位朋友目前正在开发一款基于回合的游戏,通过桌面浏览器和Android客户端进行聊天,服务器为Google App Engine 我们将JavaAPI用于GAE,并将HTTP用于与服务器的通信。我们已经实现了简单的聊天功能,在发布简单的单字聊天消息时,浏览器和Android客户端都会出现1-3秒的延迟 我的朋友认为最好使用XMPP而不是HTTP,但我们希望使用Google帐户cookie从Android客户端进行身份验证,根据GAE文档,XMPP客户端不能使用Google帐户cookie,必

我和一位朋友目前正在开发一款基于回合的游戏,通过桌面浏览器和Android客户端进行聊天,服务器为Google App Engine

我们将JavaAPI用于GAE,并将HTTP用于与服务器的通信。我们已经实现了简单的聊天功能,在发布简单的单字聊天消息时,浏览器和Android客户端都会出现1-3秒的延迟

我的朋友认为最好使用XMPP而不是HTTP,但我们希望使用Google帐户cookie从Android客户端进行身份验证,根据GAE文档,XMPP客户端不能使用Google帐户cookie,必须使用用户的密码

是否有人对延迟可能来自何处、如何进行故障排除和/或如何处理有任何建议


还有,有人知道在GAE上用Java实现的聊天(或类似的东西)的开源实现吗?似乎找不到任何信息。

分析情况的一种方法是查看延迟期间的网络流量。

分析情况的一种方法是查看延迟期间的网络流量。

您没有说明聊天消息是如何从一个JVM传输到另一个JVM的。如果您正在使用数据存储,可以尝试memcache


此外,启动时间往往是一个问题;应用程序引擎始终启动和停止JVM,特别是对于低流量应用程序。诊断这种情况的一种方法是多次重新加载页面(发送更多消息),然后查看一段时间后页面是否会变快。区分管理控制台日志中的差异应该很容易。

您不会说聊天消息是如何从一个JVM传输到另一个JVM的。如果您正在使用数据存储,可以尝试memcache


此外,启动时间往往是一个问题;应用程序引擎始终启动和停止JVM,特别是对于低流量应用程序。诊断这种情况的一种方法是多次重新加载页面(发送更多消息),然后查看一段时间后页面是否会变快。区分管理控制台日志中的差异应该很容易。

服务器与客户端的通信情况如何?我是说。当A向B写入消息时,客户端B如何知道有消息?投票?如果是这样的话,延迟无论如何都会很高,所以我建议研究一下“comet”。一种实现“服务器推送”的方法:服务器在需要的准确时间写入客户端。这样做的方法是通过HTTP。客户端连接到服务器并等待响应,但服务器必须做好准备。对于正常的HTTPrequest,同时连接1000个客户端(并等待远程响应)是不可接受的。这是一项工作4comet.helios,有关于如何在应用程序引擎上运行comet的提示吗?我觉得这是不可能的。我也会有兴趣找到一种方法来做到这一点。看来目前还没有办法用Comet做到这一点。如果你运气好的话,请发帖子。你在为服务器与客户端通信做些什么?我是说。当A向B写入消息时,客户端B如何知道有消息?投票?如果是这样的话,延迟无论如何都会很高,所以我建议研究一下“comet”。一种实现“服务器推送”的方法:服务器在需要的准确时间写入客户端。这样做的方法是通过HTTP。客户端连接到服务器并等待响应,但服务器必须做好准备。对于正常的HTTPrequest,同时连接1000个客户端(并等待远程响应)是不可接受的。这是一项工作4comet.helios,有关于如何在应用程序引擎上运行comet的提示吗?我觉得这是不可能的。我也会有兴趣找到一种方法来做到这一点。看来目前还没有办法用Comet做到这一点。如果你运气好的话,请发邮件