@@ -29,7 +29,7 @@ import { Deadline } from '../model/transaction/Deadline';
29
29
import { Transaction } from '../model/transaction/Transaction' ;
30
30
import { TransactionStatusError } from '../model/transaction/TransactionStatusError' ;
31
31
import { UInt64 } from '../model/UInt64' ;
32
- import { IListener } from './IListener' ;
32
+ import { IListener , OnWsCloseCallback } from './IListener' ;
33
33
import { MultisigHttp } from './MultisigHttp' ;
34
34
import { MultisigRepository } from './MultisigRepository' ;
35
35
import { NamespaceRepository } from './NamespaceRepository' ;
@@ -109,7 +109,7 @@ export class Listener implements IListener {
109
109
* Open web socket connection.
110
110
* @returns Promise<Void>
111
111
*/
112
- public open ( ) : Promise < void > {
112
+ public open ( onUnsolicitedCloseCallback ?: OnWsCloseCallback ) : Promise < void > {
113
113
return new Promise ( ( resolve , reject ) => {
114
114
if ( this . webSocket === undefined || this . webSocket . readyState === this . webSocket . CLOSED ) {
115
115
if ( this . websocketInjected ) {
@@ -127,11 +127,16 @@ export class Listener implements IListener {
127
127
return ;
128
128
}
129
129
if ( closeEvent ) {
130
- reject ( {
130
+ const event = {
131
131
client : this . uid ,
132
132
code : closeEvent . code ,
133
133
reason : closeEvent . reason ,
134
- } ) ;
134
+ } ;
135
+ if ( onUnsolicitedCloseCallback ) {
136
+ onUnsolicitedCloseCallback ( event ) ;
137
+ } else {
138
+ reject ( event ) ;
139
+ }
135
140
}
136
141
} ;
137
142
this . webSocket . onmessage = ( msg : any ) : void => {
0 commit comments