Web サイトの基本的なチャット/IM 機能をホストするように調整されたサーバーを .NET で開発しました。クライアントは、XMLSocket を使用して Flex (AS3) で記述されています。
現在、2 つのサーバーがあり、1 つはポリシー ファイルの送信専用で、もう 1 つは IM/チャット機能を処理します。
問題は、クライアントが接続していることを確認でき、ポリシー ファイルが送信されますが、Flash がポリシー ファイルを無視し、チャット/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);