ใช้ปลั๊กอิน NPAPI กับ node.js

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


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