簡體   English   中英

Flash客戶端XMLSocket無法連接到服務器

[英]Flash client XMLSocket not connecting to server

我有一個要連接到服務器的Flash客戶端。 兩者都使用本地主機和端口50000,因此不應有任何跨域問題。 我還在發布設置中設置了“僅訪問網絡”。 當我調用XMLSocket連接時,服務器似乎獲得了一個新的連接。 但是,不會以success = true調用XMLSocket.onConnect回調。

有什么想法可能有問題嗎?

這是用於創建套接字的ActionScript。

 function myOnConnect(success) {
    if (success) {
        trace ("Connection succeeded!")
        inputText.text = "open";
//      socket.send("1\n");
        gotoAndPlay(2);
    } else {
        trace ("Connection failed!")
        inputText.text = "failed";
    }
}


btnConnect.onRelease = function()
{
    inputText.text = "started";


    result = socket.connect("localhost", 50000);


}

socket = new XMLSocket();
socket.onConnect = myOnConnect;

這最終成為一個安全問題。 使用XMLSocket時,Flash Player增加了安全性。 現在,Flash Player會在端口843上查找策略文件。另一種方法是讓swf使用調用Security.loadPolicyFile()來查找策略文件。 如果文件存在並且所有安全設置都允許XMLSocket,則將創建連接。

此處查看有關策略文件Adobe文章和更多信息。 這是有關策略文件的另一篇好文章。

這是最終為我工作的策略文件。 完全沒有限制。 但是,我認為我可以使事情正常進行,然后將它們糾正。

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd">

<!-- Policy file for xmlsocket://socks.example.com -->
<cross-domain-policy> 

   <!-- This is a master socket policy file -->
   <!-- No other socket policies on the host will be permitted -->
<!--   <site-control permitted-cross-domain-policies="all"/> -->

   <!-- Instead of setting to-ports="*", administrator's can use ranges and commas -->
   <!-- This will allow access to ports 123, 456, 457 and 458 -->
   <allow-access-from domain="*" to-ports="*" secure="false"/>

</cross-domain-policy>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM