Re[2]: MQTT
От: sz36 Россия  
Дата: 25.04.20 22:40
Оценка:
Здравствуйте, Буравчик, Вы писали:

S>>Кто-нибудь работает с протоколом MQTT?

Б>Что нужно-то?

Вопрос в следующем. Насколько я понимаю принципы MQTT, каждый топик может хранить единственное значение (ну или единый форматированный набор). То есть, если писатель, допустим датчик температуры, помещает в топик очередное значение, этим он затирает значение, которое записал туда ранее. И читатель, подключившийся позже, должен увидеть только последнее значение.

А у меня происходит странное. В некоторых случаях (не смог установить закономерности, в каких) брокер отдает читателю после его подключения не последнее значение топика, а сразу несколько, последовательно, одно за другим. Более того, несколько раз была ситуация, что брокер впадает в ступор и начинает многократно слать подписавшемуся один и тот же топик с одним и тем же значением, забивая канал и все другие топики. Писатель при этом может быть вообще отключен. Лечится шаманскими плясками или перезагрузкой брокера. Что это?

Все топики публикуются у меня с QoS=1, RETAIN. Я отлаживаю и читателя, и писателя, и, допустим, в процессе экспериментов мог накосячить и посылать брокеру что-то не то. Но не могу понять, что именно. Что послать брокеру, что он впадает такое состояние, ибо в целом все работает, проблема случается лишь изредка.

Когда брокер начинает повторять один и тот же топик, пробовал посылать ему и PUBACK, и PUBREC, и PUBREL, и PUBCOMP (хотя для QoS=1 это все вроде как не нужно) — это брокер не останавливает (писатель, напоминаю, при этом м.б. отключен). Как сказать брокеру, что читатель топик уже получил, и больше посылать его не надо?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.