我的服务器运行在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的套接字策略文件服务器。
这在运行服务器的机器上运行正常(运行OS X)。在该计算机上,Flash连接到策略文件服务器,然后连接到端口5000上的WebSocket服务器。但是,在同一网络(192.168.0.175)上的Windows(64位)计算机上,运行Flash 10.3 / 11.2 / 11.3(在IE9 / Chrome中,我在JS控制台中收到以下错误消息:
日志:[WebSocket]启用调试
日志:[WebSocket]政策文件:xmlsocket://192.168.0.179:843
[WebSocket]无法连接到Web套接字服务器ws://192.168.0.179:5000 / websockettest(安全错误:错误#2048:安全沙箱冲突:
http://192.168.0.179/assets/flash/WebSocketMain.swf
无法加载192.168.0.179:5000中的数据。 )确保服务器正在运行并且正确放置了Flash套接字策略文件日志:[WebSocket]已关闭
根据tcpdump和服务器计算机上的策略服务器日志,Flash Player甚至没有连接到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和localhost都不起作用,给出相同的错误消息
可能导致这种情况的原因是什么?为什么FP甚至不会尝试连接到策略服务器?
答案 0 :(得分:1)
发现问题:设置DisableSockets=1
的计算机上有一个全局配置文件mms.cfg。这会导致SecurityError出现问题,并阻止Flash Player连接到策略文件服务器。将其设置为0(这是默认值),一切正常。有关此文件的详细信息,请参阅http://www.adobe.com/content/dam/Adobe/en/devnet/flash/articles/flash_player_admin_guide/flash_player_admin_guide.pdf第4章。