Информация об изменениях

Сообщение Re[4]: MQTT от 26.04.2020 23:48

Изменено 26.04.2020 23:50 sz36

Re[4]: MQTT
Здравствуйте, Буравчик, Вы писали:

Б>Если подписчик в некоторый момент недоступен, то сервер сохранит эти сообщения, ожидая подключения подписчика. При подключении подписчика сервер отправляет ему сохраненные сообщения. Не только одно последнее, а все сообщения, пришедшие в топик.

Я выше уже отвечал, что как-то это странно работает, я не вижу, чтобы брокер всегда отдавал все пропущенные читателем сообщения. Дело в том, что писатель у меня включен практически постоянно, и раз в несколько секунд он что-нибудь, да опубликует. А читателя запускаю изредка, с большими перерывами и по его логу я вижу, что как правило он получает только одно, последнее значение в каждом топике.

Б>Подключайся с флагом "clean session" = 1. Тогда ты не будешь получать сообщения, пришедшие во время "отсутствия" подписчика.

С clean session я не пробовал, попробую. Но непонятен какой момент — если я подключусь с clean session, гарантировано ли, что я получу последнее, или хотя бы какое-нибудь значение для каждого топика? Или они все очистятся несмотря на RETAIN и нужно ждать следующей публикации?

Б>К тому же, если будешь публиковать сообщения с "retain", как делаешь сейчас, то сразу после подключения подписчика к серверу тебе будет приходить последнее retain-сообщение (только одно)

Этого я как раз и добиваюсь.
Re[4]: MQTT
Здравствуйте, Буравчик, Вы писали:

Б>Если подписчик в некоторый момент недоступен, то сервер сохранит эти сообщения, ожидая подключения подписчика. При подключении подписчика сервер отправляет ему сохраненные сообщения. Не только одно последнее, а все сообщения, пришедшие в топик.

Я выше уже отвечал, что как-то это странно работает, я не вижу, чтобы брокер всегда отдавал все пропущенные читателем сообщения. Дело в том, что писатель у меня включен практически постоянно, и раз в несколько секунд он что-нибудь, да опубликует. А читателя запускаю изредка, с большими перерывами и по его логу я вижу, что после подключения как правило он получает только одно, последнее значение в каждом топике.

Б>Подключайся с флагом "clean session" = 1. Тогда ты не будешь получать сообщения, пришедшие во время "отсутствия" подписчика.

С clean session я не пробовал, попробую. Но непонятен какой момент — если я подключусь с clean session, гарантировано ли, что я получу последнее, или хотя бы какое-нибудь значение для каждого топика? Или они все очистятся несмотря на RETAIN и нужно ждать следующей публикации?

Б>К тому же, если будешь публиковать сообщения с "retain", как делаешь сейчас, то сразу после подключения подписчика к серверу тебе будет приходить последнее retain-сообщение (только одно)

Этого я как раз и добиваюсь.