将node.js嵌入Firefox扩展并在浏览器中运行服务器

jes*_*r84 6 javascript firefox firefox-addon node.js

我试图弄清楚如何在Firefox扩展中嵌入node.js,这样我就可以在浏览器中运行持久服务器进程(特别是PeerServer),只要用户启用了扩展.我唯一可以在网上找到的就是这个指南 ......但是我无法使这些说明工作,需要找到更多的资源.

1)除了上面链接的文章之外,有没有人有任何其他资源谈论在Firefox扩展中嵌入node.js?任何代码示例?

2)是否有某些原因导致无法在Firefox扩展中运行PeerServer等持久性服务器进程?扩展是否存在某些限制会妨碍我做到这一点?

Yol*_*uiz 2

您可以将可执行文件放在扩展的文件夹中,并在扩展中使用 JS 代码来启动该可执行文件。您链接的资源或MDN 中描述了运行外部可执行文件。

\n\n

从 MDN 复制的示例:

\n\n
var file = Components.classes["@mozilla.org/file/local;1"]\n                     .createInstance(Components.interfaces.nsIFile);\nfile.initWithPath("myapp.exe");\n\nvar process = Components.classes["@mozilla.org/process/util;1"]\n                        .createInstance(Components.interfaces.nsIProcess);\nprocess.init(file);\n\nvar args = ["argument1", "argument2"];\nprocess.run(false, args, args.length);\n
Run Code Online (Sandbox Code Playgroud)\n\n

需要更多的逻辑来查找用户配置文件的绝对路径,以导出要启动的应用程序的路径,但这是可行的。

\n\n

现在,如果您想通过扩展与节点交互,您可以使用 HTTP 请求作为通信方式。

\n\n

尽管 Firefox 本身的核心是 JS\xc2\xa0engine,但在 Firefox 中嵌入 Node 听起来有点奇怪。一种更优雅的方法是尝试让 PeerJS 直接在 Firefox 插件上下文中运行,而不使用 Node.js。也许更复杂,但应该是可能的。例如,请参阅此插件“浏览器服务器”。

\n