Estoy trabajando en una extensión de Firefox con un script de Node.js como host de mensajería nativo. Los mensajes enviados a la extensión desde el script se reciben como se esperaba, pero todos los métodos que he intentado para escuchar los mensajes de la extensión han fallado.
He intentado usar stdin:
process.stdin.on('readable', function() { let message = JSON.stringify("hello"); sendMessage(`{"test": "${message}"}`); });Esto funciona bien si ejecuto el script desde la línea de comandos, pero nunca recogerá los mensajes enviados desde la propia extensión.
También probé el protocolo de host de mensajería nativa npm, basado de cerca en el ejemplo:
var sendMessage = require('native-messaging')(handleMessage) function handleMessage (req) { fs.writeFile('test.txt', req.message, err => { if (err) { console.error(err); } // file written successfully }); sendMessage({message: "pong", body: 'hello from nodejs app'}); }Esto tampoco da ningún resultado.
He probado ambos métodos y parece que ninguna de estas funciones se llama nunca, sin importar cuántas veces envíe un mensaje desde la extensión, y no se arrojan errores.
No creo que esto sea un problema con el manifiesto o las claves de registro, porque la mensajería parece funcionar bien de una manera.
¿Por qué el script no recibe mis mensajes?