2012-01-27 46 views
1

我有一个Flash客户端应用程序,ActionScript编写的,它使用XMLSocket类交谈通过TCP/IP的服务器设备,端口5750。因此,举例来说,我可以运行在Flash客户端浏览器并连接到Internet上的服务器。的ActionScript插座的Android

由于最新版本的Android的支持闪光,我希望这个时候我们在Android设备上安装Flash客户端的工作。但是,连接尝试只是挂起。我目前在客户端没有任何诊断,只是运行的Flash应用程序。所以我们没有日志或标准错误消息。

的服务器设备,基本上是一个黑盒子,但它似乎明显服务器从来没有得到来自客户端的请求。这表明客户端无法打开套接字。

基本的网络搜索表明,对这种情况了解甚少。有关这里发生了什么问题的任何想法?

例如,也许XMLSocket在Android中不起作用?或者Android阻止端口5750?或者Flash Player内置了某种沙箱或防火墙限制?

我们尝试了运行Android 2.2-2.3和Android Flash Player 10-11的几款不同的Android设备。该客户端ActionScript编写2.

回答

1

这可能是一个安全设置问题

我想你的Android设备上运行的Flash客户端与服务器不在同一个域中。 Adobe的AS2参考告诉它所有:

XMLSocket.connect()方法只能连接到SWF文件所在的同一个域中的计算机。此限制不适用于运行本地磁盘的SWF文件。 (此限制与loadVariables(),XML.sendAndLoad()和XML.load()的安全规则相同。)要连接到运行在除SWF所在域之外的域中的服务器守护程序,可以使用在服务器上创建一个安全策略文件,允许从特定域进行访问。

设置服务器以与XMLSocket对象通信可能具有挑战性。如果您的应用程序不需要实时交互性,请使用loadVariables()函数或基于Flash HTTP的XML服务器连接(XML.load(),XML.sendAndLoad(),XML.send()),而不是XMLSocket类。要使用XMLSocket类的方法,您必须首先使用构造函数new XMLSocket创建一个XMLSocket对象。

有一对夫妇的其他相关问题,你的问题,值得考虑看看:

XMLSocket working in firefox but not IE

Flash client XMLSocket not connecting to server