Apache flex 通过flex的安全web套接字连接生成安全沙盒冲突

Apache flex 通过flex的安全web套接字连接生成安全沙盒冲突,apache-flex,websocket,Apache Flex,Websocket,我正在尝试使用flex连接到一个安全的web套接字(wss://),但我收到了一个安全沙盒viloation错误 完整的错误消息如下所示: *** Security Sandbox Violation *** Connection to foo.bar:8443 halted - not permitted from https://foo.bar:8443/foo/foo-html/Main.swf Security Error: [SecurityErrorEvent type="secur

我正在尝试使用flex连接到一个安全的web套接字(wss://),但我收到了一个安全沙盒viloation错误

完整的错误消息如下所示:

*** Security Sandbox Violation ***
Connection to foo.bar:8443 halted - not permitted from https://foo.bar:8443/foo/foo-html/Main.swf
Security Error: [SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048: Security sandbox violation: https://foo.bar.com:8443/foo/foo-html/Main.swf cannot load data from come2play.xpogames.com:8443."]
连接失败:错误#2048:安全沙盒冲突:无法从foo.bar.com加载数据:8443。 Websocket关闭

我尝试使用的浏览器是FireFox 20.0.1

我创建了一个javascript客户端,它使用端口
8443
上的
wss://
协议连接到同一地址,并且连接良好

我在tomcat的根目录下包含了一个crossdomain.xml文件,这样flex应用程序就可以加载它了。crossdomain.xml文件的内容如下:

<?xml version="1.0"?>
<cross-domain-policy>
    <allow-access-from domain="*" secure="false" />
        <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
但我得到了同样的结果

我还在这个crossdomain.xml中尝试了不同的配置变体。例如,
secure=“yes”
,我试图指定使用的端口,但没有任何效果,我总是遇到安全沙盒冲突

我知道mms.cfg文件可能已启用DisableSockets=1指令,但我的系统中没有此类文件。我在Linux Gentoo上

有趣的是,我的系统和我的WebSocket位于同一个域和同一个端口上

它实际上是一个facebook应用程序,位于apps.facebook.com/foo上。。 这个画布页面是例如foo.bar.com:8443

然后,安全的web套接字地址也被删除wss://foo.bar.com:8443! 所以我真的不明白为什么我首先需要处理跨域问题

如有任何关于此问题的信息,将不胜感激

谢谢

我安装了

它在端口843上打开一个服务器,实际为每个请求提供一个POICY文件。 您有一个接受每个主机和每个端口的策略文件,您需要根据需要修改它

然后,您需要在flex代码中使用xmlsocket://协议将策略文件指向该地址

    Security.loadPolicyFile("xmlsocket://hostname:843");

就这样

这个问题的答案有用吗?我试图将策略文件指向xmlsocket://myserver:8443 但是它甚至不去那里什么不去哪里?flash不会尝试从那里加载策略文件。但现在我正在尝试安装。然后,我将把策略文件指向那里,希望它能起作用!:)
    Security.loadPolicyFile("xmlsocket://hostname:843");