使用Sublime Text插件中的“Chrome Native Messaging”

时间:2015-04-12 15:29:36

标签: google-chrome-extension sublime-text-plugin chrome-native-messaging

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

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

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

  • 有没有人有这方面的经验或者可能知道一些我可以看的开源ST插件?
  • 您在清单文件的namepath中写了什么? sublime文本应用程序的名称和路径?
  • 我可以使用stdinstdout与sublime文本插件中的chrome进行通信,还是在编写插件时有限制?

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

1 个答案:

答案 0 :(得分:4)

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

  1. 此过程必须使用指定的协议通过stdin进行通话,否则Chrome会断开连接。我怀疑Sublime插件在这种情况下可以改变Sublime的行为。
  2. Chrome将始终运行指定主机的新实例;它无法连接到现有的。
  3. 因此,您假设的Native主机必须是一个单独的进程,可以独立于Sublime重新启动,并以某种方式与Sublime通信。

    您实际上并不需要此处的Native Messaging协议。另一种方法是使用WebSockets:Sublime插件可以充当localhost上的WebSocket服务器,扩展可以连接到它。请参阅GhostText作为此类架构的示例。