ฉันกำลังสร้างแอปโหนดซึ่งใช้ปลั๊กอิน 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 และหลีกเลี่ยงการเปิดหน้าต่างบนคอมพิวเตอร์โฮสต์เป็นหลัก อย่างไรก็ตาม ฉันไม่สามารถหาวิธีการทำเช่นนี้ในโหนดที่ไม่ใช่ NODE-WEBKIT (จนกว่าจะสามารถส่งไปยังมือถือได้ ซึ่งในกรณีนี้ค่อนข้างไร้ประโยชน์ เนื่องจากผู้ใช้มือถือใช้เป็นหลัก