2014-02-25 51 views
1

我正在运行基于nodejs的服务器,并且我想使用Flash作为接口。Flash策略文件请求

在AS3

我写:

Security.loadPolicyFile(的 “xmlsocket://151.248.124.213:3843”);

因此应该在此地址加载策略文件http://151.248.124.213:3843/。 链接现在不起作用。但这里是政策文件的内容:

<cross-domain-policy> 
<allow-access-from domain="*" to-ports="*"/> 
<allow-access-from domain="151.248.124.213" to-ports="80"/> 
</cross-domain-policy> 

这里是应用http://151.248.124.213/1.html 但是,当我开始使用它,它向我发送消息:

<policy-file-request/> 

AS3在同一IP谈话服务器:3000。

Nodejs位于VDS服务器上,运行完美。当我从Flash Builder启动SWF时,一切正常。所以这个问题必须在策略文件的某个地方或AS3试图加载一个。

回答

0

我解决了这个问题,这个代码在政策文件服务器

var net = require('net'); 

var netserver = net.createServer(function(socket){ 
    socket.addListener("error",function(err){ 
     socket.end && socket.end() || socket.destroy && socket.destroy(); 
    }); 
    var xml = '<?xml version="1.0"?>\n<!DOCTYPE cross-domain-policy SYSTEM \n"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">\n<cross-domain-policy>\n'; 
    xml += '<site-control permitted-cross-domain-policies="master-only"/>\n'; 
    xml += '<allow-access-from domain="*" to-ports="*"/>\n'; 
    xml += '</cross-domain-policy>\n'; 
    if(socket && socket.readyState == 'open'){ 
     socket.write(xml); 
     socket.end(); 
    } 
}); 
netserver.addListener("error",function(err){}); 
netserver.listen(3843, '0.0.0.0'); 

“0.0.0.0” - 那是你的IP或域名

这是一个用来从闪存

连接什么
Security.loadPolicyFile("xmlsocket://151.248.124.213:3843"); 

如果你想让我解释一些细节,请告诉我。