讓我一步步介紹我的問題:如何在特定端口上提供crossdomain.xml文件?
我在地址www.mydomain.com:1925上使用套接字連接爲我的用戶提供聊天服務。當我轉移到cloudflare時,我無法直接連接到端口1925,因爲我的請求通過cloudflare到達了我的原始服務器,並且端口正在改變。
我是如何解決它的? 我創建了一個子域名chat.mydomain.com,其DNS設置指向我的原始服務器而不是cloudflare。我通過這種方式繞過了cloudflare,並通過在瀏覽器上使用chat.mydomain.com:1925連接了我的聊天服務。到現在爲止還挺好。
這是問題所在。 我也在使用Flash和AS3。這是我在網站上的遊戲核心。聊天工作在HTML和我的Flash遊戲在我的網站的一部分。在flash中,我發送了幾十個玩家在www.mydomain.com:1925上通過一個不同的命名空間重新使用套接字連接(由於swf的主機和url的主機匹配,我沒有任何問題,我想)。將域名更改爲chat.mydomain.com:1925,Flash開始請求chat.mydomain.com:1925上的crossdomain.xml。 chat.mydomain.com上有一個crossdomain.xml文件,但無法通過chat.mydomain.com:1925提供。以下是我的代碼:
Security.loadPolicyFile("https://chat.mydomain.com/crossdomain.xml");
var urlLoader:URLLoader = new URLLoader();
var url:String = "https://chat.mydomain.com:1925/socket.io/1/";
var request:URLRequest = new URLRequest(url);
request.method = URLRequestMethod.POST;
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
urlLoader.addEventListener(Event.COMPLETE, completeHandler);
urlLoader.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
urlLoader.load(request);
由於Flash無法通過獲取404找到crossdomain.xml,所以我的代碼中的請求不起作用。我怎麼解決這個問題?