Flash策略文件请求

时间:2014-02-25 19:31:25

标签: node.js actionscript-3 flash cross-domain-policy

我正在运行基于nodejs的服务器,我想使用Flash作为接口。

在AS3中我写道:

  

Security.loadPolicyFile("的XMLSocket://151.248.124.213:3843&#34);

因此应在此地址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中尝试加载一个。

1 个答案:

答案 0 :(得分: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");

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