PublishAsync не завершается ошибкой, когда сервер MQTTnet не работает - PullRequest
0 голосов
/ 02 июля 2018

Я использую MQTTNet, библиотеку .NET для связи на основе MQTT. Ссылка ниже

https://github.com/chkr1011/MQTTnet

Я использую managed MQTT Client снизу ссылку

https://github.com/chkr1011/MQTTnet/wiki/ManagedClient

У меня есть код под publish сообщениями на MQTT server.

 var messagePayload = new MqttApplicationMessageBuilder()
                                      .WithTopic("Topic1")
                                      .WithPayload(message)
                                      .WithExactlyOnceQoS()
                                      .WithRetainFlag()
                                      .Build();

    try
    {
          await mqttClient.PublishAsync(messagePayload);                  
    }
    catch (Exception ex)
    {
         //Why I am not getting exception? 
    }

1 Ответ

0 голосов
/ 02 июля 2018

Это поведение по проекту управляемого клиента MQTT. Использует внутреннюю очередь. Все сообщения, опубликованные на добавляются в эту очередь, а затем отправляются на сервер, когда он становится доступным. Это также гарантирует, что сообщения не будут потеряны и могут быть повторно отправлены, даже если приложение перезапускается. Цитата из проекта вики.

Все сообщения приложения MQTT добавляются во внутреннюю очередь и обрабатываются, когда сервер становится доступным. Все сообщения приложения MQTT могут храниться для поддержки отправки их после перезапуска приложения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...