2012-05-10 129 views
0

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

LOG: [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甚至不會嘗試連接到策略服務器?

+0

該調用爲'Security.loadPolicyFile(「xmlsocket://192.168.0.179:843」);'。今天我在服務器和客戶端都用分組分析器進行了檢查,並沒有進行連接嘗試。 – chrisl83

+0

我試圖在第三臺遠程機器上託管網站。在OS X機器上一切正常,它連接到策略服務器,獲取文件並連接套接字。但是在Windows機器上,問題仍然存在。 – chrisl83

回答

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章。

+0

好消息! :)只是問 - 政策服務器是什麼意思?你必須在本地主機上使用策略文件,對吧?你做了一個套接字策略服務器,而不是一個http請求,對嗎? –

相關問題