Instant heartbeat support

This commit is contained in:
Kecskeméti László 2024-07-24 11:44:09 +02:00
parent ad7597379a
commit 79dda056b1
2 changed files with 12 additions and 0 deletions

View File

@ -96,6 +96,10 @@ public abstract class AbstractGateway {
InstantHeartbeatCts?.Cancel(); InstantHeartbeatCts?.Cancel();
} }
protected void ImmediateHeartbeat(){
InstantHeartbeatCts?.Cancel();
}
#endregion #endregion
public virtual async Task Close(){ public virtual async Task Close(){

View File

@ -78,6 +78,9 @@ public class GatewayClient : AbstractGateway {
case InvalidSessionPacket invalidSessionPacket: case InvalidSessionPacket invalidSessionPacket:
InvalidSessionHandler(invalidSessionPacket); InvalidSessionHandler(invalidSessionPacket);
break; break;
case HeartbeatPacket:
HeartbeatPacketHandler();
break;
default: default:
Log.Debug("GATEWAY: Packet not handled {opcode}", packet.Op); Log.Debug("GATEWAY: Packet not handled {opcode}", packet.Op);
break; break;
@ -126,6 +129,11 @@ public class GatewayClient : AbstractGateway {
Log.Debug("GATEWAY: Resume url: {url}", packet.Data.ResumeGatewayUrl); Log.Debug("GATEWAY: Resume url: {url}", packet.Data.ResumeGatewayUrl);
} }
private void HeartbeatPacketHandler(){
ImmediateHeartbeat();
Log.Debug("GATEWAY: Remote requested immediate heartbeat");
}
protected override Task SendHeartbeat() protected override Task SendHeartbeat()
{ {
HeartbeatPacket packet = new(){ HeartbeatPacket packet = new(){