使用节点的NPAPI插件

时间:2015-01-19 00:29:14

标签: javascript node.js npapi

我正在制作一个使用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中做到这一点的方法(直到它可以发送到移动设备,在这种情况下它几乎没用,因为这主要是由移动用户使用。

1 个答案:

答案 0 :(得分:0)

您可以假设编写一个可以加载NPAPI插件的Node模块,但这将非常困难。绝对没有任何交钥匙解决方案。

FireBreath 2.0将支持可能用于执行此操作的新协议,但它仍处于早期规划阶段。我不希望任何发布至少一个月或两个月。