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.Serializable
|
||||||
import kotlinx.serialization.cbor.Cbor
|
import kotlinx.serialization.cbor.Cbor
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
import java.lang.reflect.InvocationTargetException
|
|
||||||
import java.net.SocketException
|
import java.net.SocketException
|
||||||
import chat.revolt.api.schemas.Channel as ChannelSchema
|
import chat.revolt.api.schemas.Channel as ChannelSchema
|
||||||
|
|
||||||
|
|
@ -186,26 +185,19 @@ object RevoltAPI {
|
||||||
unreads.sync()
|
unreads.sync()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OptIn(ExperimentalCoroutinesApi::class)
|
||||||
suspend fun connectWS() {
|
suspend fun connectWS() {
|
||||||
socketCoroutine = CoroutineScope(Dispatchers.IO).launch {
|
socketCoroutine = CoroutineScope(Dispatchers.IO).launch {
|
||||||
try {
|
try {
|
||||||
withContext(realtimeContext) {
|
withContext(realtimeContext) {
|
||||||
try {
|
try {
|
||||||
RealtimeSocket.connect(sessionToken)
|
RealtimeSocket.connect(sessionToken)
|
||||||
|
} catch (e: SocketException) {
|
||||||
|
Log.d("RevoltAPI", "Socket closed, probably no big deal /// " + e.message)
|
||||||
|
RealtimeSocket.updateDisconnectionState(DisconnectionState.Disconnected)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
try {
|
Log.e("RevoltAPI", "WebSocket error", e)
|
||||||
if (e is SocketException || (e is InvocationTargetException && e.targetException is SocketException)) {
|
RealtimeSocket.updateDisconnectionState(DisconnectionState.Disconnected)
|
||||||
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")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue