上次发布的FLEX+Delphi,FLEX+Java,FLEX+C# 的聊天室 还有安全沙箱问题没有解决,
现在已经找到解决方法了,FLEX客户端在网站上运行的时候,先进行Socket连接,然后发“<policy-file-request/>”信息,即安全策略请求,如果没有通过安全策略的检验,socket时连接不成功.
如果安全策略的检验通过了,socket也会先断开,然后在连接一次,这个时候一切正常了。
Delphi代码
if POS('<policy-file-request/>',Str)>0 then //是安全策略请求
begin
Lists:=TStringList.Create;
Lists.LoadFromFile('socket-policy.xml');//然后装载socket-policy.xml文件
xml:=Lists.Text;
Socket.SendText(xml); //发送安全策略
Socket.SendText(#$00);//结束标志
Lists.Free;
exit;
end;
socket-policy.xml文件
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all"/>
<allow-access-from domain="*" to-ports="8014" />
</cross-domain-policy>