Google chrome extension Chrome插件:在Windows上访问命名管道

Google chrome extension Chrome插件:在Windows上访问命名管道,google-chrome-extension,Google Chrome Extension,我需要为Chrome编写一个插件,如果它在Windows上运行,并且浏览器的URL与特定的内容匹配,那么它可以打开一个命名管道,指向操作系统上运行的某个进程 Chrome插件的最佳选择是什么?我应该使用本机客户端还是可以使用侵入性较小的客户端(尽管我意识到根据定义命名管道是相当侵入性的)?如注释所示,本机客户端确实是沙盒,并且NPAPI已失效 联系正在运行的本机应用程序的两种当前解决方案是: 将HTTP(可选)与WebSocket一起使用,将本机应用程序(或使用任何本机方法(包括管道)与第三方应

我需要为Chrome编写一个插件,如果它在Windows上运行,并且浏览器的URL与特定的内容匹配,那么它可以打开一个命名管道,指向操作系统上运行的某个进程


Chrome插件的最佳选择是什么?我应该使用本机客户端还是可以使用侵入性较小的客户端(尽管我意识到根据定义命名管道是相当侵入性的)?

如注释所示,本机客户端确实是沙盒,并且NPAPI已失效

联系正在运行的本机应用程序的两种当前解决方案是:

  • 将HTTP(可选)与WebSocket一起使用,将本机应用程序(或使用任何本机方法(包括管道)与第三方应用程序对话的代理应用程序)用作
    localhost
    上的服务器,扩展程序尝试连接到已知端口。是这种体系结构的一个示例

  • 使用。了解这种方法的局限性很重要:

    • 它充当到外部进程的管道,但必须遵循本机消息传递(基于JSON)协议
    • 它无法连接到当前正在运行的进程(或管道):Chrome只能启动本机主机的新实例,并且无法从外部启动联系人
    因此,考虑到这些限制,您的本机主机将是一个代理,它本身将连接到相关的命名管道,并中继数据,将数据转换为本机消息传递协议


  • 你知道,奇怪的是,我刚刚注意到你可以通过以下方式查看命名管道:

    file://./pipe/

    我在读维基百科关于他们的文章时发现了这一点,然后复制了它,后来我认为我复制了一个URL,并意外地将其粘贴到了chrome中


    您甚至无法从资源管理器或文件系统访问它

    我对本地客户机的理解是它是沙盒;我很怀疑你能用NaCl做到这一点。好吧,唯一的选择是NSAPI。是的,这也是我所期待的。我可能会考虑使用NSAPI包装器。干杯你是说NPAPI吗?如果是这样,是的,你可以使用NPAPI插件来实现这个目的。。。如果您正在开发NPAPI插件,您可能还想看看Firebreath……如何将本机消息与命名管道一起使用?我是否需要一个获取JSON数据然后连接到命名管道的外部进程?或者,有没有一种直接使用本机消息传递的管道进行STDIO的方法?对于上下文,我需要将两个独立的流同时发送到一个FFmpeg进程,以便合并它们,这需要比我使用STDIO所能做的更多。命名管道是必要的。您对需要连接到命名管道的“代理”进程的理解是正确的。