feat(gateway): handle heartbeat request by server

This commit is contained in:
Cilly Leang 2026-01-27 18:24:25 +11:00
parent b4856b49fb
commit ff2f4a0358
Signed by: cilly
GPG key ID: 6500251E087653C9

View file

@ -96,7 +96,7 @@ class GatewaySession private constructor(
when (val event = payload.d) { when (val event = payload.d) {
is Event.Hello -> handleHello(event) is Event.Hello -> handleHello(event)
is Event.Ready -> handlers.ready.handle(event) is Event.Ready -> handlers.ready.handle(event)
is Event.Heartbeat -> {} is Event.Heartbeat -> handleHeartbeat()
is Event.HeartbeatAck -> { missedHeartbeats -= 1 } is Event.HeartbeatAck -> { missedHeartbeats -= 1 }
} }
} }
@ -105,6 +105,12 @@ class GatewaySession private constructor(
logger.w { "Unknown payload $payload" } 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) { private suspend fun handleHello(e: Event.Hello) {
Event.Identify(token = token).pack().send() Event.Identify(token = token).pack().send()