diff --git a/core/src/commonMain/kotlin/moe/lava/neon/core/api/gateway/GatewaySession.kt b/core/src/commonMain/kotlin/moe/lava/neon/core/api/gateway/GatewaySession.kt index 922c775..d617d65 100644 --- a/core/src/commonMain/kotlin/moe/lava/neon/core/api/gateway/GatewaySession.kt +++ b/core/src/commonMain/kotlin/moe/lava/neon/core/api/gateway/GatewaySession.kt @@ -96,7 +96,7 @@ class GatewaySession private constructor( when (val event = payload.d) { is Event.Hello -> handleHello(event) is Event.Ready -> handlers.ready.handle(event) - is Event.Heartbeat -> {} + is Event.Heartbeat -> handleHeartbeat() is Event.HeartbeatAck -> { missedHeartbeats -= 1 } } } @@ -105,6 +105,12 @@ class GatewaySession private constructor( logger.w { "Unknown payload $payload" } } + private suspend fun handleHeartbeat() { + logger.w { "Received heartbeat from server, possible connection issue" } + Event.QoSHeartbeat(lastSeq).pack().send() + missedHeartbeats += 1 + } + private suspend fun handleHello(e: Event.Hello) { Event.Identify(token = token).pack().send()