ここで同様の投稿をたくさん見つけましたが、私が抱えている正確な問題に対処しているようには見えません。
XMLSocket をサーバーに接続しようとしていますが、接続を試みてから約 10 秒後に SecurityErrorEvent: Error #2048: Security Sandbox violation (cannotload data from ##.##.##.##: 9024)。
サーバー側には、ポート 9024 をリッスンする php スクリプトがあります。他の php スクリプトを使用して接続できるため、正しく機能していると確信しています。また、クライアント側の PHP がポリシー ファイル リクエストを行うと、サーバー スクリプトはポリシーを返します。as3 は次のとおりです。
private var sock:XMLSocket = new XMLSocket();
// in my connection method
Security.allowDomain("domain.com");
Security.loadPolicyFile("dubDomain.domain.com/crossdomain.xml");
Security.loadPolicyFile("xmlsocket://domain.com:9024");
sock.connect("11.11.11.11", 9024);
sock.connect を呼び出す前に as3 のソケットにリスナーを設定しましたが、トリガーされる前に問題が発生すると思います。
私の理解では、2 番目の Security.loadPolicyFile または socket.connect のいずれかで、ソケット 9024 でサーバーへの接続を試行し、ポリシー ファイルを要求する必要があります。sock.connect は、ポート 843 からの応答の取得に失敗した後にのみ要求を送信すると思います。
ただし、サーバー側では、接続が試行されていないことを示しています。私はこれをIDE(FlashDevelop)から、そしてサーバーにアップロードするときにswfから試しました。
ポート 843 で試してみますが、サーバーの管理者権限がありません。重要な場合は、PHP スクリプトの一部を次に示します。
$client = socket_accept($sock);
if (socket_getpeername($client, $address, $theirport))
{
echo "Client $address: $theirport is now connected to us\n";
}
$input = socket_read($client, 1024000);
echo "[client] $input";
別のphpスクリプトを使用して接続できるため、$sockは正常に設定されているようですが、as3に接続しようとすると永遠に待機します.
助言がありますか?私は何か誤解していますか?前もって感謝します。