6

我的虚拟主机有针对套接字服务器的规则,所以我一直在研究 GAE。

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

谢谢。

4

4 回答 4

7

Google App Engine 现在有 Channel API

Channel API 在您的应用程序和 Google 服务器之间创建持久连接,允许您的应用程序在不使用轮询的情况下实时向 JavaScript 客户端发送消息。这对于旨在立即向用户更新新信息的应用程序很有用。一些示例用例包括协作应用程序、多人游戏或聊天室。一般来说,在无法预测或编写脚本更新的情况下,例如在人类用户之间传递信息或来自非系统生成的事件时,使用 Channel API 比轮询更好。- 取自下面的链接

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

更新:2016 年 10 月 27 日

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

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

替代产品

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

于 2011-05-06T18:16:01.560 回答
6

GAE 不支持套接字。更多支持/不支持的 infp 在这里:

http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine?pli=1

于 2010-02-13T06:49:40.157 回答
5

我可以确认我有一个使用 canvas/GWT/App Engine 的多人游戏,并且使用 channels api 运行。我使用内存缓存来保存当前状态并让客户端以其当前状态向服务器报告,然后如果经过一定时间,服务器将向所有客户端广播新状态(如果你不经常发送它拥有大量用户)。这种方法似乎占用了大量的 cpu 能力,但是,目前我的方法是在服务器上拥有最少的逻辑,这意味着有很多黑客攻击等的开口。多人交互需要一些工作,但我有玩家在其他客户端上移动大约半秒延迟,这也是因为我没有直接显示最后一个已知位置,我在旧位置和最后一个已知位置之间进行插值。

于 2011-06-19T20:05:10.593 回答
3

Socket is now supported since 1.7.2 by signing up trusted tester

http://googleappengine.blogspot.com/2012/09/app-engine-172-released.html

于 2012-09-22T14:12:12.313 回答