谷歌应用引擎可以用作套接字服务器吗?

Cal*_*l S 6 sockets flash google-app-engine multiplayer

我的webhost有针对套接字服务器的规则,所以我一直在研究GAE.

有谁知道可以在GAE上成功运行的套接字服务器?我正在将它用于闪存,所以像smartfox这样的东西如果可能的话会很棒.

谢谢.

小智 7

Google App Engine现在有渠道API

Channel API在您的应用程序和Google服务器之间创建持久连接,允许您的应用程序实时向JavaScript客户端发送消息,而无需使用轮询.这对于旨在立即更新用户有关新信息的应用程序非常有用.一些示例用例包括协作应用程序,多玩家游戏或聊天室.通常,在无法预测或编写更新的情况下,使用Channel API是一种更好的选择,例如在人类用户之间传递信息或者不系统地生成事件时. - 取自以下链接

http://code.google.com/appengine/docs/python/channel/overview.html

更新:2016年10月27日

渠道API已被弃用,并计划在2017年10月31日之前拒绝

https://cloud.google.com/appengine/docs/deprecations/channel

替代产品

您可以使用Firebase实时数据库在应用程序中实现卓越的实时功能.Firebase是一种比Channels API更强大,可定制的解决方案,它允许与更广泛的客户端进行通信.它目前支持Android,iOS和应用程序以及Web浏览器应用程序.


djd*_*ber 5

我可以确认我有一个使用canvas/GWT/App Engine的多人游戏,并使用频道api运行.我使用memcache来保持当前状态并让客户端以其当前状态向服务器报告,然后服务器将在特定时间过后向所有客户端广播新状态(以防止它经常发送给您拥有大量用户).这种方法似乎占用了大量的cpu功率,但是,目前我的方法是在服务器上有一个最小的逻辑,这意味着有很多开放的黑客等.多人互动需要一些工作,但我有玩家在aprox内移动半秒钟延迟到其他客户端,这也是因为我没有直接显示最后已知的位置,我在旧位置和最后一个已知位置之间进行插值.如果有人有更好的方法在谷歌应用程序引擎上如何做而不是使用内存缓存,请告诉我.