using System; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Hosting; namespace FinlyticBackend.Util; /// /// Backward-compatible bridge forwarding RPC requests to the primary singleton . /// Prevents secondary MQTT connection instantiations in the gateway process. /// public class WebMqttClient : IHostedService { private readonly BackendMqttBridge _bridge; public bool IsConnected => _bridge.IsConnected; public WebMqttClient(BackendMqttBridge bridge) { _bridge = bridge; } public Task StartAsync(CancellationToken cancellationToken) => Task.CompletedTask; public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask; public Task SendRpcRequestAsync(string channel, TRequest request, TimeSpan timeout) where TResponse : class where TRequest : class { return _bridge.SendRpcRequestAsync(channel, request, timeout); } public Task SendRpcRequestAsync(string channel, TRequest request) where TResponse : class where TRequest : class { return _bridge.SendRpcRequestAsync(channel, request); } public Task PublishAsync(string topic, T payload) { return _bridge.PublishAsync(topic, payload); } }