From 1657cb2b612920d2b82e11e1cd892df233282b0c Mon Sep 17 00:00:00 2001 From: atef Date: Fri, 27 Feb 2026 12:55:02 +0100 Subject: [PATCH] Create ensure connection with webscoket --- .../MiddlewareClasses/RabbitMQManager.cs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/csharp/App/GrowattCommunication/MiddlewareClasses/RabbitMQManager.cs b/csharp/App/GrowattCommunication/MiddlewareClasses/RabbitMQManager.cs index 01c5ff692..76a220494 100644 --- a/csharp/App/GrowattCommunication/MiddlewareClasses/RabbitMQManager.cs +++ b/csharp/App/GrowattCommunication/MiddlewareClasses/RabbitMQManager.cs @@ -44,6 +44,30 @@ public static class RabbitMqManager return true; } + public static Boolean EnsureConnected(StatusMessage currentSalimaxState, string? s3Bucket, string vpnServerIp) + { + try + { + if (_connection == null || !_connection.IsOpen || + _channel == null || _channel.IsClosed) + { + Console.WriteLine("⚠ RabbitMQ connection lost. Reconnecting..."); + + _connection?.Dispose(); + _channel?.Dispose(); + + return SubscribeToQueue(currentSalimaxState, s3Bucket, vpnServerIp); + } + + return true; + } + catch (Exception ex) + { + Console.WriteLine("❌ Error while ensuring RabbitMQ connection: " + ex); + return false; + } + } + public static void InformMiddleware(StatusMessage status) { var message = JsonSerializer.Serialize(status);