google-chrome-extension - 使用 Sublime Text 插件中的 'Chrome Native Messaging'

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

通过“本地消息传递”,应该可以在 chrome 扩展程序和本地应用程序之间进行通信。 https://developer.chrome.com/extensions/nativeMessaging

Google 甚至提供了一个示例来说明如何使用 python“主机”-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 插件?
  • 你在 list 文件的名称路径中写了什么? sublime text 应用的名称和路径?
  • 我可以使用 stdinstdout 从 sublime text 插件与 chrome 通信吗?或者当您编写插件时对此有限制吗?

抱歉,如果这看起来像一个愚蠢的问题,我通常做网络开发,而不是本地开发。

最佳答案

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

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

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

您在这里实际上不需要本地消息传递协议(protocol)。另一种方法是使用 WebSockets:一个 Sublime 插件可以充当本地主机上的一个 WebSocket 服务器,一个扩展可以连接到它。参见 GhostText作为此类架构的示例。

关于google-chrome-extension - 使用 Sublime Text 插件中的 'Chrome Native Messaging',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29591150/

相关文章:

javascript - 使用 getUserMedia 后关闭网络摄像头/相机

google-chrome-extension - chrome 扩展可以控制选项卡和 devtool 吗?

ssh - 通过 SSH 在具有有限权限的计算机上使用 RSUB

sublimetext - 列出 Sublime Text 3 中所有已安装软件包的最实用方法是什么?

html - 如何在 Sublime Text 3 中自动完成 HTML 标签?

google-chrome - chrome 插件 css 注入(inject)

google-chrome - chrome 关闭时 Chrome native 消息未关闭

google-chrome - 从 chrome 浏览器启动我安装的应用程序

c++ - 如何从 Chrome 扩展程序向 native 应用程序发送消息?

javascript - 无法访问 iframe 中加载的自己域上的 httponly 标记的 cookie