From 5592d0c426884f21a615722741b73e85692c9d6c Mon Sep 17 00:00:00 2001 From: aleksey-saenko Date: Thu, 2 Nov 2023 22:26:18 +0300 Subject: [PATCH] Added delay between websocket reconnections. --- .../audd/websocket/AuddRecognitionWebSocketServiceImpl.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/data/src/main/java/com/mrsep/musicrecognizer/data/remote/audd/websocket/AuddRecognitionWebSocketServiceImpl.kt b/data/src/main/java/com/mrsep/musicrecognizer/data/remote/audd/websocket/AuddRecognitionWebSocketServiceImpl.kt index bc3a2946..1ce837a2 100644 --- a/data/src/main/java/com/mrsep/musicrecognizer/data/remote/audd/websocket/AuddRecognitionWebSocketServiceImpl.kt +++ b/data/src/main/java/com/mrsep/musicrecognizer/data/remote/audd/websocket/AuddRecognitionWebSocketServiceImpl.kt @@ -7,6 +7,7 @@ import com.squareup.moshi.Moshi import com.squareup.moshi.adapter import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.channels.trySendBlocking +import kotlinx.coroutines.delay import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.callbackFlow import kotlinx.coroutines.flow.emitAll @@ -43,8 +44,11 @@ class AuddRecognitionWebSocketServiceImpl @Inject constructor( token: String, requiredServices: UserPreferencesDo.RequiredServicesDo ): Flow = flow { + var reconnectionDelay = 1000L while (true) { emitAll(startSingleSession(token, requiredServices)) + delay(reconnectionDelay) + if (reconnectionDelay < 4000L) reconnectionDelay *= 2 } }