diff --git a/packages/message/message_queue.ts b/packages/message/message_queue.ts index 95bdfba..2324274 100644 --- a/packages/message/message_queue.ts +++ b/packages/message/message_queue.ts @@ -14,7 +14,6 @@ export class Broker { LoggerCore.getInstance().logger({ service: "messageQueue" }).debug("subscribe", { topic }); const con = await this.msg.connect({ action: "messageQueue", data: { action: "subscribe", topic } }); con.onMessage((msg: { action: string; topic: string; message: any }) => { - console.log(msg); if (msg.action === "message") { handler(msg.message); } diff --git a/packages/message/window_message.ts b/packages/message/window_message.ts index 3de3306..3b9c26c 100644 --- a/packages/message/window_message.ts +++ b/packages/message/window_message.ts @@ -36,7 +36,6 @@ export class WindowMessage implements Message { ) { // 监听消息 this.source.addEventListener("message", (e) => { - console.log(e); if (e.source === this.target || e.source === this.source) { this.messageHandle(e.data, new WindowPostMessage(this.target)); } @@ -169,11 +168,10 @@ export class ServiceWorkerMessageSend implements MessageSend { constructor() {} async init() { - const list = await clients.matchAll(); + const list = await self.clients.matchAll({ includeUncontrolled: true, type: "window" }); this.target = list[0]; - console.log(this.target); - addEventListener("message", (e) => { - console.log(e); + self.addEventListener("message", (e) => { + console.log("serviceWorker", e); this.messageHandle(e.data); }); } diff --git a/src/app/service/service_worker/gm_api.ts b/src/app/service/service_worker/gm_api.ts index c231f5e..5f1b4e7 100644 --- a/src/app/service/service_worker/gm_api.ts +++ b/src/app/service/service_worker/gm_api.ts @@ -87,12 +87,11 @@ export default class GMApi { } } - export async function sendMessageToOffscreen(action: string, data?: any) { // service_worker和offscreen同时监听消息,会导致消息被两边同时接收,但是返回结果时会产生问题,导致报错 // 不进行监听的话又无法从service_worker主动发送消息 // 所以这里通过clients.matchAll()获取到所有的client,然后通过postMessage发送消息 - const list = await clients.matchAll(); + const list = await clients.matchAll({ includeUncontrolled: true, type: "window" }); list[0].postMessage({ type: "sendMessage", data: { action, data },