具有 Chrome 本机消息扩展的 C# 主机

C# host with Chrome Native Messaging Extension

我正在尝试在我的 chrome 扩展和我的 C# 应用程序之间获取本机消息传递。但以下是我的问题:

  1. 如何一次只打开一个本机应用程序?。再次点击扩展程序将再次打开本机应用程序。

  2. 我可以与已经打开的本机应用程序通信吗?

我使用以下问题中的代码构建了我的扩展程序和本机应用程序。

Native Messaging Chrome

Native Messaging 的工作原理是 启动 一个新的应用程序进程,然后只要 Chrome 保持连接打开就通过 STDIO 与其通信。如果您不保持连接打开,则无法“重新连接”到应用程序。要保持连接打开,您可能需要从事件脚本中打开它。

看到这个问题:它讨论了这个主题的一些内容,包括 C# 特定的方法来保持它的单个实例。

此外,请考虑使用替代解决方案,例如与本机代码公开的本地端口的网络通信(例如 WebSockets),尽管它会产生新的安全问题(如何确保是您的扩展程序在与之通信? ).