我有一臺運行在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