将node.jsembedded到Firefox扩展中并在浏览器中运行服务器

我试图弄清楚如何在Firefox扩展中embeddednode.js,这样,只要用户启用了扩展,我就可以从浏览器中运行持久服务器进程(特别是PeerServer )。 我唯一能够在网上find的是这个指南 …但是我一直没有能够使这些指令的工作,并需要find一些更多的资源。

1)除了上面链接到的有关在Firefox扩展中embeddednode.js的文章外,是否还有其他任何资源? 任何代码示例?

2)是否有某些原因,在Firefox扩展中运行永久服务器进程(如PeerServer)是不可能的? 扩展名是否有某些限制会妨碍我做到这一点?

您可以将可执行文件放在扩展名的文件夹中,并在可执行文件的扩展启动文件中包含JS代码。 运行外部可执行文件在您链接的资源中或MDN中进行说明 。

从MDN复制的示例:

var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsIFile); file.initWithPath("myapp.exe"); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); var args = ["argument1", "argument2"]; process.run(false, args, args.length); 

需要更多的逻辑来find用户configuration文件的绝对path来派生应用程序的启动path,但这是可行的。

现在,如果你想从扩展中与节点交互,你可以使用HTTP请求作为通信手段。

在Firefox中embedded节点听起来有点奇怪,尽pipeFirefox本身有一个JS引擎。 更优雅的方法是尝试让PeerJS直接在Firefox插件上下文中运行,而不需要节点。 也许更复杂,但它应该是可能的。 看看这个插件“ 浏览器服务器 ”。