Эх сурвалжийг харах

add checks to reconnect websocket

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Marcel Hibbe 1 жил өмнө
parent
commit
4e52b7a7bd

+ 18 - 2
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)