Запрос файла политики Flash

Я использую сервер на основе 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 и отлично работает. Когда я запускаю SWF из Flash Builder, все работает нормально. Таким образом, проблема должна быть где-то в файле политики или в AS3, пытающемся его загрузить.


person ValRus    schedule 25.02.2014    source источник


Ответы (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");

если вы хотите, чтобы я объяснил некоторые детали, дайте мне знать.

person ValRus    schedule 26.02.2014