diff options
Diffstat (limited to 'extension/react-app/src/hooks/messenger.ts')
-rw-r--r-- | extension/react-app/src/hooks/messenger.ts | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/extension/react-app/src/hooks/messenger.ts b/extension/react-app/src/hooks/messenger.ts index 00ce1fbb..ecf646c7 100644 --- a/extension/react-app/src/hooks/messenger.ts +++ b/extension/react-app/src/hooks/messenger.ts @@ -13,6 +13,8 @@ export abstract class Messenger { abstract onClose(callback: () => void): void; abstract sendAndReceive(messageType: string, data: any): Promise<any>; + + abstract onError(callback: (error: any) => void): void; } export class WebsocketMessenger extends Messenger { @@ -20,6 +22,7 @@ export class WebsocketMessenger extends Messenger { private onMessageListeners: { [messageType: string]: ((data: object) => void)[]; } = {}; + private onErrorListeners: ((error: any) => void)[] = []; private onOpenListeners: (() => void)[] = []; private onCloseListeners: (() => void)[] = []; private serverUrl: string; @@ -37,6 +40,9 @@ export class WebsocketMessenger extends Messenger { this.onMessageType(messageType, listener); } } + for (const listener of this.onErrorListeners) { + this.onError(listener); + } return newWebsocket; } @@ -95,4 +101,8 @@ export class WebsocketMessenger extends Messenger { onClose(callback: () => void): void { this.websocket.addEventListener("close", callback); } + + onError(callback: (error: any) => void): void { + this.websocket.addEventListener("error", callback); + } } |