2015-06-20 2 views
0

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

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

Благодаря

ответ

2

Если клиент подписывается на тему, то подключение к брокеру обрывается, клиент должен будет восстановить.

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

Более подробное описание долговечных подписки можно найти здесь:

http://www.hivemq.com/mqtt-essentials-part-7-persistent-session-queuing-messages/

и здесь:

http://www.thingsprime.com/?p=2897

+0

Thingsprime Ссылка немного устарел, так как все три упомянутых брокеров в наше время правильно поддерживать сообщения в очереди. Еще полезный ресурс, хотя –

+0

Последующий ответ, предлагаемое решение и запрос на отзыв: https://stackoverflow.com/questions/46229861/mqtt-catch-up-missed-messages-looking-for-feedback-on-design- допущения –

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