Actionscript 3 AS3 XMLSocket在WIN EXE中工作,但在SWF上不工作

Actionscript 3 AS3 XMLSocket在WIN EXE中工作,但在SWF上不工作,actionscript-3,sockets,flash,Actionscript 3,Sockets,Flash,我正在尝试用FlashAS3为我的socket服务器制作一个用nodejs编写的socket客户端。我还有一个与之通信的移动应用程序客户端 在AS3中,我编写了一些测试代码,当我发布并运行Windows EXE文件时,这些代码非常有效,但当发布到SWF并在浏览器中打开时,它不会连接到服务器。即使所有的“进口”也无济于事。守则: import flash.system.Security; import flash.net.XMLSocket; import flash.events.Event;

我正在尝试用FlashAS3为我的socket服务器制作一个用nodejs编写的socket客户端。我还有一个与之通信的移动应用程序客户端

在AS3中,我编写了一些测试代码,当我发布并运行Windows EXE文件时,这些代码非常有效,但当发布到SWF并在浏览器中打开时,它不会连接到服务器。即使所有的“进口”也无济于事。守则:

import flash.system.Security;
import flash.net.XMLSocket;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.SecurityErrorEvent;
import flash.events.DataEvent;

var xmlSocket:XMLSocket = new XMLSocket();
xmlSocket.connect("myserverhost", 88);

xmlSocket.addEventListener(DataEvent.DATA, onIncomingData);
send_btn.addEventListener(MouseEvent.CLICK, clickHandler);
disconnect_btn.addEventListener(MouseEvent.CLICK, disconnectHandler);

function clickHandler(event:MouseEvent):void
{
    xmlSocket.send(input_txt.text);
    input_txt.text = "";
}

function disconnectHandler(event:MouseEvent):void
{
    xmlSocket.close();
    send_btn.enabled = false;
}

function onIncomingData(event:DataEvent):void
{
    var items:Object = JSON.decode(event.data);
    for (var index in items) {
        trace(index+" => "+items[index]);
    }

    if(items['hello']){
        output_txt.text += items['hello'] + "\n";
    }
    else if(items['description']){
        output_txt.text += items['description'] + "\n";
    } else {
        output_txt.text += event.data + "\n";
    }


    output_txt.verticalScrollPosition = output_txt.maxVerticalScrollPosition;
}
我一直在谷歌上搜索,发现建议创建一个crossdomain.xml文件,但它不起作用,就是这样:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-access-from domain="*" to-ports="*" secure="false"/>
</cross-domain-policy>


尝试调用
Security.allowDonain('*')
before
var-xmlSocket:xmlSocket=newxmlsocket()

查找Security.loadPolicy文件

特殊语法允许直接从XMLSocket服务器检索策略文件。 例如:
System.security.loadPolicyFile(“xmlsocket://adobe.com:414");

问题是我在localhost域的浏览器中打开了swf\html,就像file://localhost/C:/Users/ 当我将它传输到服务器时,它停止了故障,但仍然无法从服务器获取消息。谢谢!问题是SWF位于我的pc上,而不是服务器上。但出现了一个新问题-连接到服务器后,它会立即断开连接…谢谢!问题是SWF位于我的pc上,而不是服务器上。但出现了一个新问题-连接到服务器后,它会立即断开连接。。。