CraCk писал(а): 06 янв 2019, 16:56Уже даже что то работает с QoS. Но есть еще проблема. Если соединение разорвать например на 15 сек то при восстановление соединения сообщение с нови статусом от есп приходи . Но если разорвать соединение на 1 минуту, то после этого уже новый статус с клиента не приходит. Получаться как бы есп сама себя обнуливает по какому то таймеру.
Попробовал тоже самое проделать с QoS=0. Эффект тот же, наверное это не заслуга QoS=1

Не суждено. Придется смирится с этим и городить принудительную отправку при потери связи с брокером. Кстати qosDelivered работает только на QoS=1, на QoS=0 выход никак не реагирует.
User8 писал(а): 06 янв 2019, 17:38Нужно выставить на клиенте и на брокере Clean Session = false или no, короче говоря выключить. Если хотя бы на брокере и на принимающей стороне не будет выключен CleanSession то недоставленные сообщения не дойдут.
У меня что на локальном брокере, что на облачном cloudmqtt.com нет таких настроек.
User8 писал(а): 06 янв 2019, 17:38Вот в таком примере при нажатии на button, led загорится только тогда, когда сообщение будет доставлено. Если сообщение не доставлено, то led не загорится в данном примере.
Так работает но как то это не правильно. Всегда делаем отправку по R-тригеру. Может только при доставке импульс выдавать на qosDelivered как по сылке выше?
И еще одно, при компоновке публикация и подписка на одном клиенте не работает подписка. Клиент отправил сообщение но в то же время его не принял.
[spoiler]
Снимок.JPG
[/spoiler]
На предыдущей библиотеке версия 5 работало такое работало.
Еще по предыдущей библиотеке там есть qosDelivered?
У вас нет необходимых прав для просмотра вложений в этом сообщении.