2016-08-22 3 views
0

Я не уверен, возможно ли это или нет. Если я задаю несколько сообщений, которые будут сохраняться в теме в течение некоторого периода времени, могу ли я потом захватить все из них?Сохранение серии сообщений в MQTT. Тема

У меня есть MKTT-брокер (Mosquitto), созданный уже для связи между моими службами, но теперь мне также нужно некоторое хранилище для нескольких сообщений, в идеале сохраняя последние 24 часа сообщений и возможность вытащить их позже.

ответ

1

Постоянство сообщений предназначено только для клиентов, которые подписались, но в настоящее время отключены, и когда они повторно подключаются, установите флажок cleanSession в значение false. В этом случае все сообщения, опубликованные в то время, когда клиент был отключен.

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

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

+0

Благодарности. Я подозревал, что это так, но подумал, что я дважды проверю, так как у меня уже есть его. – dave

+0

Правильно ли я понимаю, что если два брошюры публикуются брокерам по одной и той же теме, то вторая _replaces_ первая - брокер сохраняет только второе. Если подключенный вами подписчик подключен, получат ли они оба сообщения? Если бы они были отключены и повторно подключены, они получат только последнее из двух сообщений? –

+1

Брокер всегда отправляет последнее сообщение с сохраненным битом, но также отправит ** все ** в очереди сообщения, как описано выше, поэтому он получит оба сообщения (не обязательно в порядке, так как сохраненные сообщения могут быть отправлены первыми) – hardillb

Смежные вопросы