在MV3 Chrome扩展中保持持久连接

9
我正在尝试构建一个Chrome扩展程序,每当我的服务器上发生一些事件时就更新其标记-在这种情况下,我的服务器收到来自Zoom的Webhook并通知我的Chrome扩展程序发生了该事件。然后,我的Chrome扩展程序将更新其徽章上的计数器,以显示事件已发生。我正在按照Chrome扩展程序清单V3构建它,但我找不到有关如何正确执行此操作的任何信息。
据我了解,在清单V3中,所有客户端脚本都必须在服务工作者中运行。该服务工作者启动,运行一些代码,然后再次关闭。我原计划在我的后台脚本中打开一个websocket,这在清单v2下是可以的,但我认为您现在不能这样做。
我的问题是:如何保持与Chrome扩展程序的连接以接收数据?在这种情况下,当我提到数据时,我真的只是指通知我的Chrome扩展程序更新其徽章上的计数器。
除了在后台保持websocket外,是否还有其他路线可走?我已经查看了Google Cloud Messaging等内容,但我不认为它适用于我想要使用它的方式。

2
使用 Push API 可以唤醒工作者。或者,强制工作者保持活跃 - wOxxOm
@wOxxOm 谢谢!我曾经开始尝试这样做,但我认为这可能不是使用Push API的正确方式,因为我看到的大多数示例都是用于推送通知。 - Ben Bilhorn
@wOxxOm,您所指的Push API是指chrome.gcm吗? - zarax
1个回答

2
尝试使用离屏API,这是Google在一段时间前引入的。您只需要检查哪个浏览器版本可用此API即可。
这将为您提供长期的WS连接机会,并通过runtime API与服务工作者进行通信。
编辑:
自Chrome 109以来,offscreen API已经可用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接