adobe air桌面应用程序 - 与服务器的持续通信

时间:2012-12-06 09:12:37

标签: actionscript-3 air

需要弄清楚如何打开与服务器的连接并从AS 3.0中的客户端应用程序中监听不断的更改。

这是我在这里的第一篇文章,所以请耐心等待一会儿。

我正在尝试开发基本上是一个在线游戏,可以由多个玩家一起玩,从家里,通过安装我正在使用的客户端,到他们的机器。现在,我没有设置服务器的问题,因为它被设置为在被问及时提供XML,例如(gamenumber,maxplayers,currentplayers)。我选择Adobe Air进行客户端开发。当客户端在PC上打开时,它与服务器连接并检索上面的XML示例,然后在主窗口中显示。问题就是这样......说我有2个玩家,每个玩家都在我网站上注册的不同位置。应用程序如何与服务器通信,以便当player1从应用程序中选择并打开游戏,并且player2加入该游戏时,player1的PC上的客户端会自动更新...此外,一旦游戏开始,并且player1需要一些游戏中的动作(按下一些按钮),玩家2看到了。我知道我可以使用计时器或轮询间隔,例如让客户端每隔“n”秒从服务器请求游戏状态,但我正在寻找更具流动性的解决方案。例如,让应用程序不断收听服务器的更改。在应用程序中实现node.js的东西(可能是一个愚蠢的ideea)。当涉及到有限数量的连接和数据大小时,轮询和计时工作正常,但如果您有数千或更多,则需要服务器场或其他解决方案。我不认为我会有成千上万的连接,但随着我开发应用程序,我意识到它需要从服务器提取的数据随着我的每个新想法而增加。所以...任何想法?我真的不必从Adobe Air切换到别的东西,但我愿意接受建议。

1 个答案:

答案 0 :(得分:0)

好吧,我找到了我的问题的答案,但不完全是一个解决方案。为了在air app和服务器以及其他客户端之间保持双向开放通道,我需要在php,java,c ++,python等中编写自己的XMLSocket服务器,并使用XMLSocket(); Flex中的功能。我设法在这里找到另一个例子:http://www.kilometer0.com/blog/code/php-xml-socket-server/。对于那些希望开发像我这样的广泛平台的人来说,它仍然不是答案,因为php XMLSock仍然无法处理那么多连接。此外,正如我一直在阅读,我看到它比一般的http网站更复杂,因为你需要根据你的桌面应用程序构建你的套接字服务器。一个很好的解决方案似乎是,用C ++编写套接字服务器,因为它可以很好地处理错误,以及大量的连接。谢谢你的所有指示。