From 1f2d7593072913bb73e7b8ca8de2c42af02e2258 Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Fri, 14 Jul 2023 17:57:06 +0200 Subject: [PATCH] add checks to reconnect websocket Signed-off-by: Marcel Hibbe --- .../talk/webrtc/WebSocketInstance.kt | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/webrtc/WebSocketInstance.kt b/app/src/main/java/com/nextcloud/talk/webrtc/WebSocketInstance.kt index bbd5e428d..dec297dd7 100644 --- a/app/src/main/java/com/nextcloud/talk/webrtc/WebSocketInstance.kt +++ b/app/src/main/java/com/nextcloud/talk/webrtc/WebSocketInstance.kt @@ -56,6 +56,7 @@ import java.io.IOException import javax.inject.Inject @AutoInjector(NextcloudTalkApplication::class) +@Suppress("TooManyFunctions") class WebSocketInstance internal constructor( conversationUser: User, connectionUrl: String, @@ -388,6 +389,10 @@ class WebSocketInstance internal constructor( ) if (!isConnected || reconnecting) { messagesQueue.add(message) + + if (!reconnecting) { + restartWebSocket() + } } else { if (roomToken == "") { Log.d(TAG, "sending 'leave room' via websocket") @@ -399,7 +404,11 @@ class WebSocketInstance internal constructor( } else { Log.d(TAG, "Sending join room message via websocket") currentNormalBackendSession = normalBackendSession - internalWebSocket!!.send(message) + + if (!internalWebSocket!!.send(message)) { + messagesQueue.add(message) + restartWebSocket() + } } } } catch (e: IOException) { @@ -414,8 +423,15 @@ class WebSocketInstance internal constructor( ) if (!isConnected || reconnecting) { messagesQueue.add(message) + + if (!reconnecting) { + restartWebSocket() + } } else { - internalWebSocket!!.send(message) + if (!internalWebSocket!!.send(message)) { + messagesQueue.add(message) + restartWebSocket() + } } } catch (e: IOException) { Log.e(TAG, "Failed to serialize signaling message", e)