私はここに似たような投稿をたくさん見つけましたが、私が抱えている問題を解決するものはありません。as3 XMLSocketがポリシーファイルを要求していません
XMLSocketをサーバーに接続しようとしていますが、接続しようとしてから約10秒後に、SecurityErrorEventが発生します:エラー#2048:セキュリティサンドボックス違反(### ##のデータをcannotload) 。##:9024)。
サーバ側では、ポート9024をリッスンするPHPスクリプトがあります。他のPHPスクリプトを使用して接続できるため、正しく動作していると思います。また、私のクライアント側のPHPがポリシーファイル要求を行うと、私のサーバスクリプトがそのポリシーを返します。
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でソケットにリスナーを設定しますが、私は、彼らがトリガーされる前に、何でもうまくいかないことが起こると思う:ここに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スクリプトを使用して接続することができますよう、細かい設定しているようだが、私はAS3に接続しようとすると、それだけで永遠に待ちます。
提案がありますか?私は何かを誤解していますか?前もって感謝します。
助けていただきありがとうございますが、残念ながらまだ動作していません。ここで私は今、フラッシュで何をしています:Security.allowInsecureDomain(ip); \t \t \t Security.allowDomain(ip); \t \t \t Security.loadPolicyFile(ip + "/ crossdomain。 – Tyler
私のサーバ上のログをチェックしたところ、それは見た目がよくなりました。 crossdomain.xmlファイル:<?xml version = "1.0"?> <!DOCTYPEクロスドメインポリシーシステム "http: //www.adobe.com/xml/dtds/cross-domain-policy.dtd "> cross-domain-policy> –
Tyler