我试图在端口3000上提供内联闪存策略文件,但没有运气。
我无法捕获来自Flash政策调用(<policy-file-request/>\0
)的任何回调。而且我不知道如何通过套接字将发送策略文件发送回闪存。
Somethig喜欢这样:来自Adobe的Setting up a socket policy file server
这是来自服务器的代码:
var server = require('http').createServer();
var io = require('socket.io')(server);
var port = 3000;
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';
io.on('connection', function (socket) {
socket.on('<policy-file-request/>\0', function (data, callback) {
console.log('socket policy-file-request 0');
callback(xml);
});
});
server.listen(port, function () {
info('Server listening at ' + port);
});
来自客户:
Security.loadPolicyFile("xmlsocket://example.com:3000");
答案 0 :(得分:0)
您正在进行socket.io连接和通信不正确。你必须发出套接字而不是使用回调方法,因此(代码的修改):
服务器:
var server = require('http').createServer();
var io = require('socket.io')(server);
var port = 3000;
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';
io.on('connection', function (socket) {
socket.on('<policy-file-request/>\0', function (data) {
console.log('socket policy-file-request 0');
socket.emit('<policy-file-request/>\0', xml);
});
socket.on('<policy-file-request/>', function (data) {
console.log('socket policy-file-request');
socket.emit('<policy-file-request/>', xml);
});
});
server.listen(port, function () {
info('Server listening at ' + port);
});
客户端:
//
//Existing code (socket setup)
//
socket.on('<policy-file-request/>\0', function(data){
Security.loadPolicyFile(data);
});
socket.on('<policy-file-request/>', function(data){
Security.loadPolicyFile(data);
});
答案 1 :(得分:0)
在npm crossdomain package中尝试solution(我建议question(看看评论)怎么样?
希望可以提供帮助。