我正在制作一个使用npapi插件的节点应用程序。基本上我试图这样做,如果连接到服务器的设备或浏览器不支持该插件,它将回退到服务器。目前我有一个类似的工作,但它需要在发送请求时在主机上打开一个新窗口
(变通路线)
var open = require('open');
var jobs = [];
router.get('/nsjob', function(req, res, next){
var job = {
id:(jobs.length > 0) ? jobs[jobs.length - 1].index + 1:0,
xml://xml,
params://params,
callback:function(err, data){
if(err)
return next(err);
res.send(data);
}
};
open('http://localhost:3000/handleJob/' + job.index);
});
router.get('/handleJob/:id', function(req, res){
var job;
for(var i in jobs){
if(jobs[i].index === req.params.id){
job = jobs[i];
break;
}
}
res.render('hjob', job')
});
router.post('/completedJob/:id', function(req, res){
var job;
for(var i in jobs){
if(jobs[i].index === req.params.id){
job = jobs[i];
break;
}
}
if(req.body)
job.callback(req.body.err, req.body.data);
else
job.callback(null, null);
res.end();
});
这一切都很好,但似乎是一个非常糟糕的方式,但我需要这个后备选项,但它使得几乎不可能使用主机,而移动设备在服务器上运行。如果我可以将NPAPI插件加载到节点我可以修改api不使用dom并且基本上避免在主机上打开一个窗口。但是我找不到在节点NOT NODE-WEBKIT中做到这一点的方法(直到它可以发送到移动设备,在这种情况下它几乎没用,因为这主要是由移动用户使用。
答案 0 :(得分:0)
您可以假设编写一个可以加载NPAPI插件的Node模块,但这将非常困难。绝对没有任何交钥匙解决方案。
FireBreath 2.0将支持可能用于执行此操作的新协议,但它仍处于早期规划阶段。我不希望任何发布至少一个月或两个月。