【问题标题】:Flash policy-file-requestFlash 策略文件请求
【发布时间】:2015-03-08 09:47:33
【问题描述】:

我正在运行基于 nodejs 的服务器,我想使用 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 中。

【问题讨论】:

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


    【解决方案1】:

    我在策略文件服务器中解决了这段代码的问题

    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");
    

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

    【讨论】:

      猜你喜欢
      • 2012-06-29
      • 1970-01-01
      • 2012-09-09
      • 2012-01-26
      • 2011-10-10
      • 2012-11-26
      • 1970-01-01
      • 2011-12-21
      • 2022-01-14
      相关资源
      最近更新 更多