Google App Engine:浏览器与服务器的持久连接
我最近在玩谷歌的App Engine频道API,想做一个类似于http://rawkets.com/的实时多人游戏。这个API基本上是“单向”的,也就是说它不支持持续的浏览器和服务器之间的连接,所以我每秒大约发出30个新的AJAX POST请求(用的是JQuery)。
这样做似乎产生了很大的开销(每秒5-6kb),我希望能减少这个开销。理想情况下,我想建立一个连接,持续时间稍微少于30秒(这是App Engine的请求超时),在这个连接期间每30毫秒发送一次新数据。然后服务器会利用频道API把信息“传播”给所有其他相关的客户端。希望这样说能让你明白!
有没有什么好主意?
3 个回答
0
使用内置的频道API时,广播功能不是很好用(虽然他们在邮件列表上说正在改进这个问题)。
你可以考虑使用一个第三方的“真正的”WebSocket服务提供商。例如,可以看看 http://pusherapp.com。
0
这根本不是HTTP的工作方式——听起来你想要的更像是即将推出的websockets API,但目前浏览器对它的支持还不太普遍,App Engine也根本不支持。
不过,每个用户每秒30个请求听起来实在是太高了——一个人在键盘上根本不可能产生这么多事件。