Flash Socket通信的安全策略问题

今天测试flash socket连接java socket,遇到安全策略问题,折腾了半天才弄好。做下关键点记录:

 

flash发起socket通信的过程:

 

      当封装在页面的flash发起socket通信请求的时候会先寻找服务器端的843端口,获取crossdomain.xml文件,当服务器没有开启843的时候,flashPlayer会检查发起请求的swf文件中中有没有使用Security.loadPolicyFile来加载策略文件crossdomain.xml,如果还是没有就会看这个发起请求的swf要连接的目标端口有没有策略文件。如果都没有那么连接失败,返回SecurityErrorEvent 的出错提示。

 

      需要注意的是,请求策略文件的链接和主动发起的链接是两个独立的链接,也就是说服务端收到<policy-file-request/>信息的链接并不是我们在客户端的connect函数的主链接。 换句话说你需要准备两个端口一个认证用,一个就是以后通信用的。还有就是如果你自己定义一个非843端口的认证,则需要加上

Security.loadPolicyFile("xmlsocket://127.0.0.1:1234");
sock.connect(ip,port);

 

你可能感兴趣的:(xml,socket,Security,Flash)