繁体   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