Actionscript 3 AS3 XMLSocket在WIN EXE中工作,但在SWF上不工作
我正在尝试用FlashAS3为我的socket服务器制作一个用nodejs编写的socket客户端。我还有一个与之通信的移动应用程序客户端 在AS3中,我编写了一些测试代码,当我发布并运行Windows 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;
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('*')
beforevar-xmlSocket:xmlSocket=newxmlsocket()代码>查找Security.loadPolicy文件
特殊语法允许直接从XMLSocket服务器检索策略文件。
例如:
System.security.loadPolicyFile(“xmlsocket://adobe.com:414"); 问题是我在localhost域的浏览器中打开了swf\html,就像file://localhost/C:/Users/ 当我将它传输到服务器时,它停止了故障,但仍然无法从服务器获取消息。谢谢!问题是SWF位于我的pc上,而不是服务器上。但出现了一个新问题-连接到服务器后,它会立即断开连接…谢谢!问题是SWF位于我的pc上,而不是服务器上。但出现了一个新问题-连接到服务器后,它会立即断开连接。。。