File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11import { v4 as uuidv4 } from "uuid" ;
22import { Message , MessageConnect , MessageSend } from "./server" ;
3+ import EventEmitter from "eventemitter3" ;
34
45// 通过 window.postMessage/onmessage 实现通信
56
6- import EventEmitter from "eventemitter3" ;
7-
87export interface PostMessage {
98 postMessage ( message : any ) : void ;
109}
@@ -167,13 +166,18 @@ export class ServiceWorkerMessageSend implements MessageSend {
167166
168167 constructor ( ) { }
169168
169+ listened : boolean = false ;
170+
170171 async init ( ) {
171172 if ( ! this . target && self . clients ) {
172173 const list = await self . clients . matchAll ( { includeUncontrolled : true , type : "window" } ) ;
173174 this . target = list [ 0 ] ;
174- self . addEventListener ( "message" , ( e ) => {
175- this . messageHandle ( e . data ) ;
176- } ) ;
175+ if ( ! this . listened ) {
176+ this . listened = true ;
177+ self . addEventListener ( "message" , ( e ) => {
178+ this . messageHandle ( e . data ) ;
179+ } ) ;
180+ }
177181 }
178182 }
179183
You can’t perform that action at this time.
0 commit comments