我有一台运行在http://192.168.0.179的服务器。它提供了一个Flash文件WebSocketMain.swf(从https://github.com/gimite/web-socket-js),该文件尝试执行到192.168.0.179:5000的套接字连接。我也有一个运行在192.168.0.179:843的套接字策略文件服务器。Flash Player不连接到套接字策略文件服务器 - 给出SecurityError#2048
这在服务器运行的机器上运行正常(运行OS X)。在该机器上,Flash连接到策略文件服务器,然后连接到端口5000上的WebSocket服务器。但是,在同一网络(192.168.0.175)上的Windows(64位)机器上,运行Flash 10.3/11.2/11.3而在这两个IE9 /浏览器),我得到的JS控制台以下错误信息:
LOG: [WebSocket] debug enabled
LOG: [WebSocket] policy file: xmlsocket://192.168.0.179:843
[WebSocket] cannot connect to Web Socket server at ws://192.168.0.179:5000/websockettest (SecurityError: Error #2048: Security sandbox violation:
http://192.168.0.179/assets/flash/WebSocketMain.swf
cannot load data from 192.168.0.179:5000.) make sure the server is running and Flash socket policy file is correctly placedLOG: [WebSocket] closed
根据tcpdump和服务器计算机上的策略服务器日志,Flash播放器甚至不连接到策略服务器的192.168.0.179。 192.168.0.179:843是从.175机器打开的,因此FP连接到它应该没有问题。我可以通过.175机器上的终端客户端(例如PuTTY)连接到它,并且可以毫无问题地接收策略文件。只是为了确保我也禁用了Windows防火墙,也没有任何效果。
我已经尝试修改WebSocketMain.swf显式调用Security.loadPolicyFile(),并且根本不调用它,没有任何效果。我也尝试在代码中添加Security.allowDomain(“*”)。依然没有。我甚至尝试修改FP将连接到的URL(由Web服务器提供)到192.168.0.179:80。没有。 192.168.0.179:10000也不起作用。即使127.0.0.1和本地主机不起作用,给出相同的错误信息
什么可能导致此?为什么FP甚至不会尝试连接到策略服务器?
该调用为'Security.loadPolicyFile(“xmlsocket://192.168.0.179:843”);'。今天我在服务器和客户端都用分组分析器进行了检查,并没有进行连接尝试。 – chrisl83
我试图在第三台远程机器上托管网站。在OS X机器上一切正常,它连接到策略服务器,获取文件并连接套接字。但是在Windows机器上,问题仍然存在。 – chrisl83