c# - M2MQTT如何自动重连

标签 c# asp.net mqtt paho reconnect

我正在尝试使用此协议(protocol),并且已经有 2 个客户端(一个用于发布,另一个用于订阅)和一个正在工作的代理。

我的问题是我想在订阅客户端中实现重新连接功能,因为 wifi 信号不稳定并且不想每次都手动重启客户端,我该如何实现?

最佳答案

您可以使用 ConnectionClosed 事件来检测何时发生断开连接。

然后我启动一个任务,尝试重新连接客户端。 像这样的东西:

 private async Task TryReconnectAsync(CancellationToken cancellationToken)
    {
        var connected = _client.IsConnected;
        while (!connected && !cancellationToken.IsCancellationRequested)
        {
            try
            {
                _client.Connect(_clientId);
            }
            catch
            {
                _logger.Log(LogLevel.Warn, "No connection to...{0}",_serverIp);
            }
            connected = _client.IsConnected;
            await Task.Delay(10000, cancellationToken);
        }
    }

不完美,但可以胜任。

关于c# - M2MQTT如何自动重连,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43547179/

相关文章:

asp.net - 将简单 ASP.NET 应用程序部署到托管 IIS 6.0 服务器的最简单方法

c# - System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection

go - Paho MQTT Golang 协议(protocol)

ruby-on-rails - Rails 和 MQTT : Subscribe to topic in background at server startup?

javascript - 如何在 jQuery 中组契约(Contract)一个表上的两个不同的 onClick 事件?

java - 如何使用 paho mqtt java 实现请求-响应模式?

c# - 覆盖客户端证书身份验证验证

c# - 重新评估 UniformGrid 行和列 WPF

c# - 有条件地从文本文件中删除最后一行

c# - C# 5.0 async/await vs. Akka actor vs. basic fork/join 的示例?