From 6e9c69c2a8fbf15e851b506c28c703c7234209af Mon Sep 17 00:00:00 2001 From: BoxuChan Date: Fri, 5 Sep 2025 17:47:02 +0200 Subject: [PATCH] Code Optimizations for SignalR/ApiController --- MareSynchronos/WebAPI/SignalR/ApiController.cs | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/MareSynchronos/WebAPI/SignalR/ApiController.cs b/MareSynchronos/WebAPI/SignalR/ApiController.cs index 1351a3d..0e46e98 100644 --- a/MareSynchronos/WebAPI/SignalR/ApiController.cs +++ b/MareSynchronos/WebAPI/SignalR/ApiController.cs @@ -188,7 +188,7 @@ public sealed partial class ApiController : DisposableMediatorSubscriberBase, IM ServerState = ServerState.Connected; var currentClientVer = Assembly.GetExecutingAssembly().GetName().Version!; - + if (_connectionDto.ServerVersion != IMareHub.ApiVersion) { if (_connectionDto.CurrentClientVersion > currentClientVer) @@ -310,7 +310,7 @@ public sealed partial class ApiController : DisposableMediatorSubscriberBase, IM _ = Task.Run(async () => await StopConnection(ServerState.Disconnected).ConfigureAwait(false)); _connectionCancellationTokenSource?.Cancel(); } - private int _unhealthy = 0; + private async Task ClientHealthCheck(CancellationToken ct) { while (!ct.IsCancellationRequested && _mareHub != null) @@ -319,15 +319,9 @@ public sealed partial class ApiController : DisposableMediatorSubscriberBase, IM var healthy = await CheckClientHealth().ConfigureAwait(false); if (!healthy || _mareHub.State != HubConnectionState.Connected) { - _unhealthy++; - if (_unhealthy > 0) - { - Logger.LogWarning("Health check failed, forcing reconnect. ClientHealth: {0} HubConnected: {1}", healthy, _mareHub.State != HubConnectionState.Connected); - await ForceResetConnection().ConfigureAwait(false); - _unhealthy = 0; - } + Logger.LogWarning("Health check failed, forcing reconnect. ClientHealth: {0} HubConnected: {1}", healthy, _mareHub.State != HubConnectionState.Connected); + await ForceResetConnection().ConfigureAwait(false); } - else _unhealthy = 0; } }