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