0

http://192.168.0.179でサーバーを実行しています。これは、 192.168.0.179:5000 へのソケット接続を試行するフラッシュ ファイル WebSocketMain.swf ( https://github.com/gimite/web-socket-jsから) を提供します。また、ソケット ポリシー ファイル サーバーを 192.168.0.179:843 で実行しています。

これは、サーバーが実行されているマシン (OS X を実行している) で正常に機能します。そのマシンで、Flash はポリシー ファイル サーバーに接続し、次に WebSocket サーバーにポート 5000 で接続します。および IE9/Chrome の両方で)、JS コンソールに次のエラー メッセージが表示されます。

ログ: [WebSocket] デバッグが有効になっています

ログ: [WebSocket] ポリシー ファイル: xmlsocket://192.168.0.179:843

[WebSocket] ws://192.168.0.179:5000/websockettest で Web ソケット サーバーに接続できません (SecurityError: エラー #2048: セキュリティ サンドボックス違反: http://192.168.0.179/assets/flash/WebSocketMain.swf192.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 がポリシー サーバーに接続しようとさえしないのはなぜですか?

4

1 に答える 1

1

問題が見つかりました:を設定したマシンにグローバル構成ファイルmms.cfgがありましたDisableSockets=1。これにより、SecurityErrorが発生し、FlashPlayerがポリシーファイルサーバーに接続できなくなりました。これを0(デフォルト)に設定すると、すべてが機能しました。このファイルの詳細については、http://www.adobe.com/content/dam/Adobe/en/devnet/flash/articles/flash_player_admin_guide/flash_player_admin_guide.pdf第4章を参照してください。

于 2012-05-12T01:51:46.727 に答える