From a63b38342598b52dfb34f24813563720c2775fd9 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Tue, 22 Aug 2023 14:06:02 -0400 Subject: [PATCH] BugFix Force Relay Reconnection when writing a new events. --- .../amethyst/service/relays/Relay.kt | 32 +++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt index dc7909179..21ea17847 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt @@ -284,16 +284,36 @@ class Relay( checkNotInMainThread() if (signedEvent is RelayAuthEvent) { + // specific protocol for this event. val event = """["AUTH",${signedEvent.toJson()}]""" socket?.send(event) eventUploadCounterInBytes += event.bytesUsedInMemory() - } + } else { + if (write) { + if (isConnected()) { + if (isReady) { + val event = """["EVENT",${signedEvent.toJson()}]""" + socket?.send(event) + eventUploadCounterInBytes += event.bytesUsedInMemory() + } + } else { + // waits 60 seconds to reconnect after disconnected. + if (TimeUtils.now() > closingTimeInSeconds + RECONNECTING_IN_SECONDS) { + // sends all filters after connection is successful. + connectAndRun { + checkNotInMainThread() - if (write) { - if (signedEvent !is RelayAuthEvent) { - val event = """["EVENT",${signedEvent.toJson()}]""" - socket?.send(event) - eventUploadCounterInBytes += event.bytesUsedInMemory() + val event = """["EVENT",${signedEvent.toJson()}]""" + socket?.send(event) + eventUploadCounterInBytes += event.bytesUsedInMemory() + + // Sends everything. + Client.allSubscriptions().forEach { + sendFilter(requestId = it) + } + } + } + } } } }