baihehua00 2012-03-16
使用flex的socket通信时,安全沙箱的问题非常恼人,结合自己的使用经验,可以采用如下的终极解决方案进行处理:
1、如果flex 应用程序需要通过socket与指定服务器进行socket通信,那么就必须要在服务器端开启一个
843端口(当然,也可以通过其他端口来发送)来负责向客户端发送安全策略文件;
2、这个安全策略文件的内容必须要在服务器端使用socket发送给客户端;
3、服务器端发送完毕安全策略文件之后,必须立即断开当前与客户端的socket连接;
4、针对socket的安全策略文件是:
<?xml version="1.0"?>
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all"/>
<allow-access-from domain="*" to-ports="2020" />
</cross-domain-policy>
注:如果服务器端不是通过843端口向flex安全策略文件,则在flex端使用socket.connect()之前,必须要进
行如下设置,指定到服务器的哪个端口获取安全策略文件.如服务器端使用1234端口发送安全策略文件,则
在flex端的设置如下:
Security.loadPolicyFile("xmlsocket://www.xxx.com:1234");