Этот вопрос следует из В чем разница между обратными вызовами MQTTAsync_onSuccess и MQTTAsync_deliveryComplete?
Мой пример приложения, в котором используются вызовы библиотеки paho C
MQTTAsync_setDeliveryCompleteCallback () для установки обратного вызова с полной доставкой.
Я замечаю, что когда я публикую сообщение с QoS0
, этот обратный вызов никогда не вызывается . Когда сообщение публикуется с QoS1
или QoS2
, этот обратный вызов вызывается надежно. ( Я основываю «никогда» и «надежно» на примерно дюжине испытаний, а mqtt
сервер работает на локальном хосте, что, вероятно, устраняет ненадежность сети ).
Я понимаю три уровня QoS, и, в частности, QoS0
не гарантирует доставку. Но Ожидается ли / гарантируется ли, что публикация сообщения с QoS0
приведет к обратному вызову с полной доставкой никогда ? Или может быть вызван полный вызов , иногда ?
Благодарен за руководство.