我有一台服务器在 http://192.168.0.179 运行。它提供了一个闪存文件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控制台中收到以下错误消息:
根据 tcpdump 和服务器计算机上的策略服务器日志,Flash Player 甚至不会连接到位于 192.168.0.179日志:已启用 [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 加载数据。( 确保服务器正在运行并且闪存套接字策略文件已正确放置日志:[网络套接字] 已关闭
的策略服务器。 192.168.0.179:843 是从 .175 计算机打开的,因此 FP 连接到它应该没有问题。我可以通过终端客户端(例如 PuTTY(从 .175 机器连接到它,并毫无问题地接收策略文件。只是为了确保我也禁用了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 甚至不尝试连接到策略服务器?
发现问题:设置DisableSockets=1
的计算机上有一个全局配置文件 mms.cfg。这导致了安全错误,并阻止了 Flash Player 连接到策略文件服务器。将其设置为 0(这是默认值(,一切正常。有关此文件的详细信息,请参阅第 4 章 http://www.adobe.com/content/dam/Adobe/en/devnet/flash/articles/flash_player_admin_guide/flash_player_admin_guide.pdf。