0

我的问题与这里提出的问题有关 - Flash socket server only works on local machine

我的 flash 应用程序在我的本地机器上的本地 apache 服务器上运行良好,但是当我尝试连接到我的 Amazon 服务器上运行的 PHP 套接字服务器时,它无法连接。我认为我的问题与跨域文件有关,但我找不到太多关于它的信息。

这是我的代码。

AS3:

var host:String = "x.x.x.x"; // substituted for actual IP of website
var port:uint = 9999;

Security.allowDomain("*"); 
Security.loadPolicyFile("http://www.example.com/crossdomain.xml"); // substituted for actual domain name

socket.connect(host, port);

PHP:

$ip = '0.0.0.0';
$port = 9999;

跨域:

<cross-domain-policy>
  <site-control permitted-cross-domain-policies="master-only"/>
    <allow-access-from domain="*.example.com"/>
</cross-domain-policy>

如果我需要添加任何进一步的信息,请告诉我。

谢谢

4

1 回答 1

0

看看我的答案Annoying Error #2048: Security sandbox violation from localhost,您需要在 843 端口或连接端口 (9999) 上设置套接字策略服务器,而不是 http 传递的 xml。

UPD:要调试策略服务器,请执行以下操作:

  1. 通过以下命令检查服务器安装是否正确(Windows 上的 linux、mac 或 cygwin):echo -ne '<policy-file-request/>\0' | nc -v host port

  2. PolicyFileLog=1通过在mm.cfg文件中设置 flag 来打开 flash player 策略日志(确保你有 flash player 的调试版本),运行 swf 文件并读取策略日志,它具有用户友好的格式,你将能够图在大多数情况下,通过此日志解决问题。

于 2013-07-26T21:07:11.223 回答