Resend leaveOpen queries

fixes #594
This commit is contained in:
2023-06-27 10:38:26 +01:00
parent 9f8095b0df
commit 9f114ffb44
3 changed files with 32 additions and 5 deletions

View File

@ -105,6 +105,7 @@ export class NostrSystem extends ExternalStore<SystemSnapshot> implements System
c.OnEvent = (s, e) => this.OnEvent(s, e);
c.OnEose = s => this.OnEndOfStoredEvents(c, s);
c.OnDisconnect = (code) => this.OnRelayDisconnect(c, code);
c.OnConnected = (r) => this.OnRelayConnected(c, r);
await c.Connect();
} else {
// update settings if already connected
@ -115,6 +116,14 @@ export class NostrSystem extends ExternalStore<SystemSnapshot> implements System
}
}
OnRelayConnected(c: Connection, wasReconnect: boolean) {
if (wasReconnect) {
for (const [, q] of this.Queries) {
q.connectionRestored(c);
}
}
}
OnRelayDisconnect(c: Connection, code: number) {
this.#relayMetrics.onDisconnect(c, code);
for (const [, q] of this.Queries) {
@ -147,6 +156,7 @@ export class NostrSystem extends ExternalStore<SystemSnapshot> implements System
c.OnEvent = (s, e) => this.OnEvent(s, e);
c.OnEose = s => this.OnEndOfStoredEvents(c, s);
c.OnDisconnect = code => this.OnRelayDisconnect(c, code);
c.OnConnected = (r) => this.OnRelayConnected(c, r);
await c.Connect();
return c;
}