From ff2f4a03582de2f530e0b860fae214f229ac61c3 Mon Sep 17 00:00:00 2001 From: Cilly Leang Date: Tue, 27 Jan 2026 18:24:25 +1100 Subject: [PATCH] feat(gateway): handle heartbeat request by server --- .../moe/lava/neon/core/api/gateway/GatewaySession.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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()