flex通过socket与服务器端进行通信时的安全沙箱问题终极解决方案

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");

相关推荐