Что касается MQTT PubAck с первым уровнем QoS
В этом уроке в разделе message options
По умолчанию для нового экземпляра сообщения установлено значение "По меньшей мере, один раз", а качество обслуживания (QoS) равно 1, что означает, что отправитель доставит сообщение хотя бы один раз и, если его нет, продолжит отправку. с установленным дублирующим флагом, пока не появится подтверждение,
Означает ли это, что в setCallback listener-> onMessageArrived()
я должен проверить, прибыло ли какое-либо сообщение, я должен повторно отправить сообщение с установленным флагом дублирования?
1 ответ
Нет, это означает, что брокер будет продолжать отправлять сообщение подписчику, пока не получит подтверждение. Клиентский код paho mqtt должен обрабатывать все это для вас.
Единственное, что вы можете сделать при использовании QOS1, это проверить наличие дублирующихся сообщений в обратном вызове onmessage. Лучший способ сделать это - включить уникальное значение в полезную нагрузку сообщения.