fix: socket related crash
Signed-off-by: Infi <infi@infi.sh>
This commit is contained in:
parent
f4e6e23d83
commit
d0ccb4b568
|
|
@ -49,7 +49,6 @@ import kotlinx.serialization.SerialName
|
|||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.cbor.Cbor
|
||||
import kotlinx.serialization.json.Json
|
||||
import java.lang.reflect.InvocationTargetException
|
||||
import java.net.SocketException
|
||||
import chat.revolt.api.schemas.Channel as ChannelSchema
|
||||
|
||||
|
|
@ -186,26 +185,19 @@ object RevoltAPI {
|
|||
unreads.sync()
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalCoroutinesApi::class)
|
||||
suspend fun connectWS() {
|
||||
socketCoroutine = CoroutineScope(Dispatchers.IO).launch {
|
||||
try {
|
||||
withContext(realtimeContext) {
|
||||
try {
|
||||
RealtimeSocket.connect(sessionToken)
|
||||
} catch (e: SocketException) {
|
||||
Log.d("RevoltAPI", "Socket closed, probably no big deal /// " + e.message)
|
||||
RealtimeSocket.updateDisconnectionState(DisconnectionState.Disconnected)
|
||||
} catch (e: Exception) {
|
||||
try {
|
||||
if (e is SocketException || (e is InvocationTargetException && e.targetException is SocketException)) {
|
||||
Log.d(
|
||||
"RevoltAPI",
|
||||
"Socket closed, probably no big deal /// " + e.message
|
||||
)
|
||||
} else {
|
||||
Log.e("RevoltAPI", "WebSocket error", e)
|
||||
}
|
||||
RealtimeSocket.updateDisconnectionState(DisconnectionState.Disconnected)
|
||||
} catch (e: Exception) {
|
||||
Sentry.captureMessage("Error in socket error handling: $e")
|
||||
}
|
||||
Log.e("RevoltAPI", "WebSocket error", e)
|
||||
RealtimeSocket.updateDisconnectionState(DisconnectionState.Disconnected)
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue