diff --git a/packages/app/src/router.ts b/packages/app/src/router.ts index aa96c45..858ea16 100644 --- a/packages/app/src/router.ts +++ b/packages/app/src/router.ts @@ -180,7 +180,10 @@ export class Router { Quote = (event: TrustedEvent, value: string, relays = []) => { const tag = event.tags.find(t => t[1] === value) - const scenarios: RouterScenario[] = [] + const scenarios = [ + this.ForPubkey(event.pubkey), + this.FromPubkey(event.pubkey), + ] if (tag?.[2] && isShareableRelayUrl(tag[2])) { scenarios.push(this.FromRelays([tag[2]])) diff --git a/packages/net/src/Socket.ts b/packages/net/src/Socket.ts index e35ad50..dffbd0f 100644 --- a/packages/net/src/Socket.ts +++ b/packages/net/src/Socket.ts @@ -26,6 +26,7 @@ const { } = SocketStatus export class Socket { + lastError = 0 status = SocketStatus.New worker = new Worker() ws?: WebSocket @@ -53,6 +54,13 @@ export class Socket { this.cxn.emit(ConnectionEvent.Reset) } + // If we're closed due to an error retry after a delay + if (Date.now() - this.lastError > 15_000) { + this.status = New + this.lastError = 0 + this.cxn.emit(ConnectionEvent.Reset) + } + // If the socket is new, connect if (this.status === New) { this.#init() @@ -94,6 +102,7 @@ export class Socket { this.ws.onerror = () => { this.status = Error + this.lastError = Date.now() this.cxn.emit(ConnectionEvent.Error) }