receive error when sending message on offline

This commit is contained in:
Peter Maquiran
2024-08-07 11:18:41 +01:00
parent 95a6d01aae
commit b0a334c9dd
10 changed files with 132 additions and 51 deletions
+13 -1
View File
@@ -25,7 +25,7 @@ export class SignalRConnection {
private reconnect = true
private sendDataSubject: BehaviorSubject<{method: string, data: any}> = new BehaviorSubject<{method: string, data: any}>(null);
private pendingRequests: Map<string, { resolve: Function; reject: Function }> = new Map();
url: string
constructor({url}) {
@@ -61,6 +61,13 @@ export class SignalRConnection {
console.log('Connection closed');
this.connectionStateSubject.next(false);
this.disconnectSubject.next(true)
this.pendingRequests.forEach((_, requestId) => {
const { reject } = this.pendingRequests.get(requestId);
reject(err('Connection closed================!s'));
this.pendingRequests.delete(requestId);
});
if(this.reconnect) {
this.attempReconnect();
}
@@ -98,12 +105,17 @@ export class SignalRConnection {
console.log('sendMessage', data)
this.hubConnection.invoke("SendMessage", data)
//
this.pendingRequests.set(data.requestId, { resolve, reject: (data) => resolve(data) });
this.messageSubject.pipe(
filter((message: any) => data.requestId == message?.requestId),
first()
).subscribe(value => {
resolve(ok(value))
console.log('Received valid value:', value);
//
this.pendingRequests.delete(data.requestId);
});
} else {