私はサーバがhttp://192.168.0.179で動作しています。これは、フラッシュファイル、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 Playerはさえのポリシーサーバに接続しません192.168.0.179。 192.168.0.179:843は0.175マシンからオープンしているので、FPが接続する際に問題はありません。 .175マシンのターミナルクライアント(PuTTYなど)を使用して接続することができ、問題なくポリシーファイルを受信できます。 Windowsファイアウォールも無効にしていることを確認するだけで、効果はありません。
私はWebSocketMain.swfを変更して、Security.loadPolicyFile()を明示的に呼び出すようにしましたが、何も効果がなく、呼び出すことは一切ありませんでした。私もコードにSecurity.allowDomain( "*")を追加しようとしました。まだ何も。私は、FPが(ウェブサーバーによって提供される)接続先のURLを192.168.0.179:80に変更しようとしました。何もない。 192.168.0.179:10000も機能しません。 127.0.0.1でもlocalhostは機能しません。同じエラーメッセージが表示されます
これはおそらく何が原因でしょうか? FPがポリシーサーバに接続しようとしないのはなぜですか?
この呼び出しは 'Security.loadPolicyFile(" xmlsocket://192.168.0.179:843 ");'です。今日、私はサーバとクライアントの両方でパケットアナライザを調べましたが、接続は試行されませんでした。 – chrisl83
私は3番目のリモートマシンでWebサイトをホストしようとしました。 OS Xのマシンでは、すべて正常に動作し、ポリシーサーバに接続し、ファイルを取得してソケットを接続します。しかし、Windowsマシンでは、問題は引き続き発生します。 – chrisl83