You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Manifest V3版本Chrome Extension如何保持持久连接接收服务端事件更新徽章

Manifest V3 下服务端触发Chrome扩展徽章更新的可行方案

方案1:WebSocket兼容实现(适合低延迟需求)

针对你原本想用WebSocket的方案,在Manifest V3下仍然可以通过心跳保活兼容实现,适配Service Worker的休眠逻辑:

  • 首先在manifest.json中声明background.service_worker入口,同时申请alarms权限
  • 给WebSocket实例添加心跳机制,每25秒向服务端发送一次ping包,同时触发Service Worker活跃状态延长休眠时间
  • 当Service Worker意外被关闭时,服务端缓存未推送的事件,下次WebSocket重连时一次性拉取未读事件更新徽章计数
    关键代码示例:
// background.js(Service Worker文件)
let ws;
let badgeCount = 0;

function initWebSocket() {
  ws = new WebSocket('wss://你的服务端WebSocket地址');
  ws.onmessage = (event) => {
    // 收到Zoom事件通知后更新徽章
    badgeCount += 1;
    chrome.action.setBadgeText({ text: badgeCount.toString() });
  };
  // 断开后自动重连
  ws.onclose = () => setTimeout(initWebSocket, 3000);
}

initWebSocket();
// 用alarm定时触发保活,避免Service Worker休眠
chrome.alarms.create('wsKeepAlive', { periodInMinutes: 0.42 }); // 约25秒触发一次
chrome.alarms.onAlarm.addListener((alarm) => {
  if (alarm.name === 'wsKeepAlive' && ws.readyState === WebSocket.OPEN) {
    ws.send('ping');
  }
});

注意:心跳间隔不要小于30秒,否则会被Chrome判定为恶意耗电强制限制


方案2:短轮询(完全符合MV3设计规范,无审核风险)

该方案完全适配Manifest V3的Service Worker生命周期设计,不需要维持长连接,不会出现兼容问题:

  • 同样在manifest.json中申请alarms权限
  • 设置固定间隔的定时闹钟,触发Service Worker启动后主动向服务端发起HTTP请求,拉取未处理的Zoom事件总数
  • 请求完成后Service Worker自动休眠,完全符合谷歌的Manifest V3规范,没有被应用商店拒审的风险
    关键代码示例:
// background.js(Service Worker文件)
// 设置每分钟拉取一次,可根据延迟需求调整
chrome.alarms.create('fetchUnreadCount', { periodInMinutes: 1 });
chrome.alarms.onAlarm.addListener(async (alarm) => {
  if (alarm.name !== 'fetchUnreadCount') return;
  try {
    const response = await fetch('https://你的服务端接口地址/getUnreadZoomEventCount');
    const unreadCount = await response.json();
    // 计数为0时隐藏徽章
    chrome.action.setBadgeText({ text: unreadCount > 0 ? unreadCount.toString() : '' });
  } catch (e) {
    // 请求失败忽略即可,下次闹钟触发再重试
  }
});

注意:Chrome允许的alarm最小触发间隔为30秒,设置小于0.5的periodInMinutes会被自动拉长到30秒

两种方案都不需要依赖谷歌云推送服务,完全自主可控,可根据你的延迟需求选择即可。

内容的提问来源于stack exchange,提问作者Ben Bilhorn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:54:04