From 8d3066b377aa66e284b82b9ac3ad430a7b01c3c5 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Fri, 1 Sep 2023 12:36:19 -0400 Subject: [PATCH] Marks which relays are using compression --- .../vitorpamplona/amethyst/service/relays/Relay.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 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 e1ba964ad..4a95c0bed 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 @@ -47,6 +47,7 @@ class Relay( private var listeners = setOf() private var socket: WebSocket? = null private var isReady: Boolean = false + private var usingCompression: Boolean = false var eventDownloadCounterInBytes = 0 var eventUploadCounterInBytes = 0 @@ -118,7 +119,10 @@ class Relay( override fun onOpen(webSocket: WebSocket, response: Response) { checkNotInMainThread() - markConnectionAsReady(response.receivedResponseAtMillis - response.sentRequestAtMillis) + markConnectionAsReady( + pingInMs = response.receivedResponseAtMillis - response.sentRequestAtMillis, + usingCompression = response.headers.get("Sec-WebSocket-Extensions")?.contains("permessage-deflate") ?: false + ) // Log.w("Relay", "Relay OnOpen, Loading All subscriptions $url") onConnected(this@Relay) @@ -178,15 +182,17 @@ class Relay( } } - fun markConnectionAsReady(pingInMs: Long) { + fun markConnectionAsReady(pingInMs: Long, usingCompression: Boolean) { this.afterEOSE = false this.isReady = true this.pingInMs = pingInMs + this.usingCompression = usingCompression } fun markConnectionAsClosed() { this.socket = null this.isReady = false + this.usingCompression = false this.afterEOSE = false this.closingTimeInSeconds = TimeUtils.now() } @@ -242,6 +248,7 @@ class Relay( socket?.close(1000, "Normal close") socket = null isReady = false + usingCompression = false afterEOSE = false }