ActionScriptの3のXMLSocketのポリシーファイルの問題
-
25-09-2019 - |
質問
私達は私達のウェブサイトのためのいくつかの基本的なチャット/ IM機能をホストする.NETで仕立てサーバーを開発しました、そしてクライアントがのXMLSocketを使用してフレックス(AS3)で書かれています。
今、私たちは2台のサーバー、純粋にポリシーファイルを送信し、もう1つはIM /チャット機能を扱う専用のものを持っています。
問題で、私たちは、クライアントが接続見ることができ、ポリシーファイルが送られたが、その後のフラッシュは、ポリシーファイルを無視し、私たちのチャット/ IMサーバーから再度要求されます。
ポリシーファイルます:
<?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-access-from domain="*" to-ports="*" secure="false"/>
</cross-domain-policy>
ポリシーサーバます:
Server.LogMessage("Policy Server: Serving policy file.");
TcpListener listener = (TcpListener)ar.AsyncState;
Socket client = listener.EndAcceptSocket(ar);
NetworkStream ns = new NetworkStream(client);
StreamReader sr = new StreamReader(ns);
StreamWriter sw = new StreamWriter(ns);
sr.Read();
//Send policy
sw.Write(Server.EncodeString(Server.xmlPolicyFile.OuterXml) + "\0");
sw.Flush();
ns.Flush();
//Cleanup
sw.Close();
sr.Close();
ns.Close();
//Do it again!
tcl.BeginAcceptSocket(AcceptCallback, tcl);
解決
クロスドメインポリシーはサーバだけその上で動作します...あなたは別のサーバーのためのポリシーを提供するサーバーを持つことができません...何があなたのマシンのためのポリシーを作成し、あなたのデータを盗む悪役を停止します。
あなたは正しいサーバーから提供ポリシーを持っている必要があります。
他のヒント
おかげGergorしかし、私は意味は、我々は、ポリシーファイルを送信し、実際の接続(両方とも同じマシン上で)を処理するために1専用の一つのサーバを開いたということです。
問題は、あなたがすぐにポリシーサーバ上で他に何もせずにポリシーファイルを送信する必要があることだった。
所属していません StackOverflow