3

使用“Native Messaging”应该可以在 chrome 扩展程序和本机应用程序之间进行通信。https://developer.chrome.com/extensions/nativeMessaging

谷歌甚至提供了一个如何使用python“主机”应用程序执行此操作的示例:https ://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/docs/examples/api/nativeMessaging /host/native-messaging-example-host

我想使用这种技术在 Sublime Text 插件 (python) 和 Chrome 扩展程序之间进行通信。

  • 有没有人有这方面的经验,或者可能知道一些我可以查看的开源 ST 插件?
  • 你在清单文件的name和 中写了什么?pathsublime text 应用程序的名称和路径?
  • 我可以使用sublime text 插件中的 chromestdinstdout与之通信吗?或者在编写插件时对此有限制吗?

对不起,如果这看起来像一个愚蠢的问题,我通常做网络,而不是原生开发。

4

1 回答 1

4

本机消息无法连接到任意进程,因为:

  1. 该进程必须stdin使用指定的协议进行通话,否则 Chrome 将断开连接。在这种情况下,我怀疑 Sublime 插件可以改变 Sublime 的行为。
  2. Chrome 将始终运行指定主机的新实例;它无法连接到现有的。

所以你假设的 Native 主机必须是一个单独的进程,它可以独立于 Sublime 重新启动,并以某种方式与 Sublime 对话。

您实际上并不需要本机消息传递协议。另一种方法是使用 WebSockets:Sublime 插件可以充当 localhost 上的 WebSocket 服务器,并且扩展可以连接到它。将 GhostText视为此类架构的示例。

于 2015-04-12T17:03:54.580 回答