首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MQTTNet托管客户端扩展问题

MQTTNet托管客户端扩展问题
EN

Stack Overflow用户
提问于 2022-09-22 14:10:35
回答 1查看 166关注 0票数 0

我有ManagedMqttClient来建立与Solace的连接。

代码语言:javascript
复制
 public async Task Connect()
        {
           _mqttClient = new MqttFactory().CreateManagedMqttClient();
           _mqttClientOptions = new MqttClientOptionsBuilder()
                .WithClientId(_options.ClientId)
                .WithTcpServer(_options.Host, _options.Port);
           
            ManagedMqttClientOptions managedMqttClientOptions = new ManagedMqttClientOptionsBuilder()
                   .WithClientOptions(_mqttClientOptions)
                   .Build();

            await _mqttClient.StartAsync(managedMqttClientOptions);

            _mqttClient.ConnectedHandler = new MqttClientConnectedHandlerDelegate(e =>
                    _logger.LogDebug("MQTT connection is made; Result code: {ConnectResult}", e.ConnectResult.ResultCode));
            _mqttClient.ConnectingFailedHandler = new ConnectingFailedHandlerDelegate(e =>
                    _logger.LogError("MQTT connection is failed; Exception: {Exception}", e.Exception.Demystify()));
            _mqttClient.DisconnectedHandler = new MqttClientDisconnectedHandlerDelegate(e =>
                    _logger.LogDebug("MQTT connection is end; Reason: {Reason}", e.Reason));

            _mqttClient.UseApplicationMessageReceivedHandler(MessageReceivedHandler);
        }

它对服务的一个实例( MQTT客户端)非常有用。但是,当并行地启动另一个服务实例时,我将面临重新连接问题。它每秒钟对两个服务进行连接和断开。

是否有什么方法可以使用MQTTnet和缩放我的服务而没有这样的问题。提前谢谢你!

MQTTnet包:

代码语言:javascript
复制
<PackageReference Include="MQTTnet" Version="3.1.2" />
<PackageReference Include="MQTTnet.Extensions.ManagedClient" Version="3.1.2" />
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-23 10:05:05

这不是MQTTnet管理客户端的问题。深入了解MQTT我发现

如果尝试连接到与现有客户端同名的MQTT代理,则删除现有客户端连接。因为大多数MQTT客户端将尝试在断开之后重新连接,这可能导致断开连接和连接的循环。

因此,安慰放弃一个客户端,用另一个客户端替换它。它可以通过共享订阅功能来修复。在我的例子中,Solace支持它,MQTTnet也支持这样的特性。所有必要的方法就是在主题中使用$/group订阅和创建具有不同ids的客户端。有关更多信息,请查看MQTTnet负载平衡

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73816135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档