我們已經開發了一個定製的.NET服務器來爲我們的網站託管一些基本的聊天/ IM功能,客戶端使用XMLSocket編寫在Flex(AS3)中。ActionScript 3的策略文件問題XMLSocket
現在我們有2個服務器,一個專門用於純粹發送策略文件,另一個處理IM /聊天功能。
問題是,我們可以看到客戶端連接,策略文件被髮送,但是Flash忽略了策略文件並從我們的聊天/即時消息服務器再次請求它。
政策文件:
<?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);