@@ -29,7 +29,7 @@ import { Deadline } from '../model/transaction/Deadline';
2929import { Transaction } from '../model/transaction/Transaction' ;
3030import { TransactionStatusError } from '../model/transaction/TransactionStatusError' ;
3131import { UInt64 } from '../model/UInt64' ;
32- import { IListener } from './IListener' ;
32+ import { IListener , OnWsCloseCallback } from './IListener' ;
3333import { MultisigHttp } from './MultisigHttp' ;
3434import { MultisigRepository } from './MultisigRepository' ;
3535import { NamespaceRepository } from './NamespaceRepository' ;
@@ -109,7 +109,7 @@ export class Listener implements IListener {
109109 * Open web socket connection.
110110 * @returns Promise<Void>
111111 */
112- public open ( ) : Promise < void > {
112+ public open ( onUnsolicitedCloseCallback ?: OnWsCloseCallback ) : Promise < void > {
113113 return new Promise ( ( resolve , reject ) => {
114114 if ( this . webSocket === undefined || this . webSocket . readyState === this . webSocket . CLOSED ) {
115115 if ( this . websocketInjected ) {
@@ -127,11 +127,16 @@ export class Listener implements IListener {
127127 return ;
128128 }
129129 if ( closeEvent ) {
130- reject ( {
130+ const event = {
131131 client : this . uid ,
132132 code : closeEvent . code ,
133133 reason : closeEvent . reason ,
134- } ) ;
134+ } ;
135+ if ( onUnsolicitedCloseCallback ) {
136+ onUnsolicitedCloseCallback ( event ) ;
137+ } else {
138+ reject ( event ) ;
139+ }
135140 }
136141 } ;
137142 this . webSocket . onmessage = ( msg : any ) : void => {
0 commit comments