Как клиент подключается к MQTT-брокеру, если для флагов чистой сессии задано значение false - PullRequest
0 голосов
/ 19 февраля 2019

Clean Session поддерживает сохранение сообщений.По умолчанию значение Clean Session is true.

Поскольку мы можем установить Qos и сохранить значение флага с полезной нагрузкой запроса, как показано ниже:

docker run -it --rm -имя mqtt-publisher --network \ fiware_default efrecon / mqtt-client pub -h mosquitto -m "c | 1234" \ -t "/ 4jggokgpepnvsb2uv4s40d59ov / motion001 / attrs" -q 2 -r -d

Может кто-нибудь сказать мне, как клиент может установить параметр чистого сеанса как ложный?мы можем установить этот флаг с полезной нагрузкой запроса или есть другой метод для этого ??

1 Ответ

0 голосов
/ 19 февраля 2019

Флаг чистого сеанса устанавливается при подключении клиента MQTT.

Это выполняется в пакете CONNECT как часть флагов подключения .

Если выиспользуя mosquitto_sub, тогда по умолчанию используется чистый сеанс для подписок.Флаг -c или --disable-clean-session может быть установлен для включения постоянного сеанса.

При использовании этого флага необходимо установить идентификатор клиента MQTT, чтобы брокер мог отслеживать подписки по идентификатору клиента.С https://mosquitto.org/man/mosquitto_sub-1.html:

-c, --disable-clean-session

Отключить флаг «чистый сеанс».Это означает, что все подписки для клиента будут поддерживаться после его отключения, а также поступающие последующие сообщения QoS 1 и QoS 2.Когда клиент повторно подключится, он получит все сообщения в очереди.

Если используется эта опция, идентификатор клиента должен быть установлен вручную с помощью --id

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...