использовать плагин 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 (пока он не будет отправлен на мобильный, в этом случае он практически бесполезен, поскольку он в основном используется мобильными пользователями.


person Snymax    schedule 19.01.2015    source источник


Ответы (1)


Вы могли бы гипотетически написать модуль Node, который загружал бы плагин NPAPI, но это было бы очень сложно. Готового решения для этого точно нет.

FireBreath 2.0 будет поддерживать новый протокол, который, вероятно, можно будет использовать для сделать это, но это все еще на ранних стадиях планирования. Я не ожидаю никаких релизов в течение как минимум месяца или двух.

person taxilian    schedule 20.01.2015
comment
Я изучал это, однако не могу найти много информации об обработке плагинов npapi. Я сделал пару приложений node-webkit, которые созданы для прозрачного запуска. Это не чисто, но работает, однако я хотел бы найти более надежное решение. - person Snymax; 20.01.2015
comment
вы также не найдете много информации. Это не что-то широко распространенное; Я бы сказал, что в мире меньше 10 человек (уж точно меньше 20) с опытом работы с NPAPI, чтобы сделать это без особых хлопот, и никто из нас особенно не хочет этим заниматься. это должно вам что-то сказать. То, что вы хотите сделать, не является хорошей идеей, и я не рекомендую вам пробовать это. Найдите лучшее решение. - person taxilian; 20.01.2015
comment
не только потому, что его постепенно прекращают, поэтому я хотел бы упаковать решение ... по крайней мере, пока не выйдет новый драйвер - person Snymax; 20.01.2015
comment
Что ж, NPAPI постепенно прекращается в Chrome. Никто больше не объявлял о планах избавиться от него. - person taxilian; 21.01.2015