我的问题与此处提出的问题有关 - 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>
如果我需要添加更多信息,请与我们联系。
由于
答案 0 :(得分:0)
请查看我的答案Annoying Error #2048: Security sandbox violation from localhost,您需要在843端口或连接端口(9999)上设置套接字策略服务器,而不是http传送xml。
UPD: 要调试策略服务器,请执行以下操作:
通过命令检查服务器安装是否正确(Windows上为linux,mac或cygwin):echo -ne '<policy-file-request/>\0' | nc -v host port
通过在mm.cfg文件中设置标记PolicyFileLog=1
来启用Flash播放器策略日志(确保您拥有Flash播放器的debug version),运行swf文件并阅读在策略日志中,它具有用户友好的格式,您可以通过此日志找出问题。