gpt4 book ai didi

nativemessaging 应用程序和 webextension 之间的异步双向消息传递?

转载 作者:行者123 更新时间:2023-12-04 17:48:37 27 4
gpt4 key购买 nike

看来 Nativemessaging 的协议(protocol)意味着 native 应用程序通过阻止先读后写循环与扩展进行通信。

首先,这是正确的吗?

如果是这样,那么就很难在双方之间建立双向异步通信。

在我开始做一些非常复杂的事情来解决这个限制之前,是否有一些简单的 API 可以实现与 native 应用程序的双向异步消息传递?


我想支持的事情:

  • 基于连接的本地消息传递(即:长时间运行)
  • 来自任一端的异步响应请求
  • 来自任何一端的没有响应的通知

我第一个“愚蠢复杂”的想法是:

  1. 使用 Nativemessaging 启动 native 应用程序并管理其生命周期
  2. 在启动时让 native 应用程序启动 WebSocket server并使用其中的 Webextension 使用的 WebSocket URI 响应第一个请求

最佳答案

有点晚了,但对于我正在处理的扩展,我能够调整 mdn page 上的示例您提到了消除 stdin 读取中的阻塞(到目前为止,stdout 写入似乎是非阻塞的,但我认为如果那不正确,同样的想法也适用于它们)

我在 Windows 上工作,所以很多其他 SO 帖子建议使用 select这个模块不适合我。我已经设置好使用 asyncio在发现这个之前在我的项目中,所以 this SO post 的答案指示我 this page建议使用 loop.run_in_executor处理这些情况的方法(据我所知,这会从主事件循环创建一个单独的线程,而不是它被阻塞)。使用该方法包装从示例中读取的 stdin.buffer 为我消除了阻塞。

关于nativemessaging 应用程序和 webextension 之间的异步双向消息传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46929317/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com