Flash客户端的XMLSocket没有连接到服务器(Flash client XMLSocket

2019-06-27 04:59发布

我有我想连接到服务器的Flash客户端。 两者都使用本地主机和端口50000所以不应该有任何跨域问题。 我还设置只访问网络的发布设置。 当我打电话的XMLSocket连接,服务器似乎得到一个新的连接。 但是,在XMLSocket.onConnect回调不叫成功= TRUE。

什么任何想法可能是错误的?

下面是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;

Answer 1:

这最终是一个安全问题。 当使用的XMLSocket的Flash播放器增加了安全性。 Flash播放器现在看起来对端口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>


文章来源: Flash client XMLSocket not connecting to server