为客户端 MqttNet C# 设置持久会话

问题描述 投票:0回答:1

我如何添加,以便我的持续会话在我的科纳克上是真实的

她是我建立的客户

        public MqttService(ILogger<MqttService> logger, IOptionsMonitor<MqttConfig> mqttConfig)
        {
            _logger = logger;
            _mqttConfig = mqttConfig;
            Initialize(new MqttClientOptionsBuilder()
                .WithClientId((_mqttConfig.CurrentValue.MqttClientName)
                .WithTcpServer(_mqttConfig.CurrentValue.BaseUrl)
                .WithCredentials(_mqttConfig.CurrentValue.Username,
                                 _mqttConfig.CurrentValue.Password)
                .WithWillTopic(_mqttConfig.CurrentValue.MccOnlineState)
                .WithWillPayload("Offline")
                .WithWillRetain(true)
                .WithCleanSession(false)
                .WithKeepAlivePeriod(TimeSpan.FromSeconds(60))
                .Build());

        }


        public void Initialize(MqttClientOptions mqttClientOptions)
        {
            _managedMqttClientOptions = new ManagedMqttClientOptionsBuilder()
                .WithClientOptions(mqttClientOptions)
                .Build();
            var factory = new MqttFactory();
            _mqttClient = factory.CreateManagedMqttClient();
        }

因为现在它仍然是“未设置”

无法缝合上面的任何东西。

c# mqtt mqttnet
1个回答
0
投票

我认为 session_expiry_interval 是您错过的字段。如果未设置,默认值为 0。

© www.soinside.com 2019 - 2024. All rights reserved.