2

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

这是我在这里的第一篇文章,所以请稍等片刻。

我正在尝试开发一个基本上可以由多个玩家在家里同时玩的在线游戏,方法是将我目前正在使用的客户端安装到他们的机器上。现在,我设置服务器没有问题,因为它设置为在询问时提供 XML,例如(gamenumber、maxplayers、currentplayers)。我选择 Adob​​e Air 进行客户端开发。当客户端在 PC 上打开时,它会与服务器连接并检索上面的 XML 示例,然后显示在主窗口中。问题来了……假设我有 2 个玩家,每个玩家都在我的网站上注册的不同位置。应用程序如何与服务器通信,以便当玩家 1 从应用程序中选择并打开游戏,并且玩家 2 加入该游戏时,玩家 1 电脑上的客户端会自动更新......此外,一旦游戏开始,并且 player1 在游戏中采取了一些行动(按下某个按钮),player2 看到了这一点。我知道我可以使用计时器或 pollintervals,例如让客户端每隔“n”秒从服务器请求一次游戏状态,但我正在寻找一种更具流动性的解决方案。例如,让应用程序不断地监听服务器的变化。在应用程序中实现 node.js 之类的东西(可能是一个愚蠢的想法)。当涉及到有限数量的连接和数据大小时,轮询和计时可以正常工作,但如果您有数千个或更多,您要么需要服务器场,要么需要其他解决方案。我不认为我会有成千上万的连接,但是当我开发应用程序时,我意识到它需要从服务器中提取的数据会随着我的每一个新想法而增加。所以......有什么想法吗?我'

4

1 回答 1

0

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

于 2012-12-07T06:05:08.590 回答