Давайте проведем аналогию с мобильной связью,при разговоре телефон и базовая станция обмениваются кучей информации о которой абонент и понятия не имеет, да и не надо ему,при обрыве связи с Вашим собеседником базовая станция может Вам сразу сообщить,что связь нарушена или абонент вышел из зоны действия и Вы будете знать,что собеседник не на связи ,а не взял паузу и молчит,это и будет в случае mqtt WillMessage . Вы сами прописывайте в настройках блока какое сообщение отправит брокер всем кто подписался на топик WillTopic этого клиента ,всем тем,кому интересно знать,что отвалилась связь с этим клиентом. Mqtt брокер и клиент тоже обмениваются пакетами проверки связи,этим занимается библиотека mqtt и сервер брокера нам этим заниматься не надо.Хотя опцией Will можно и не пользоваться,кому как.
Это у меня только не работает? При включении в WillTopic ничего нет. при обрыве связи там появляется надпись I am lost. это вроде логично. но при дальнейшем восстановлении связи, эта надпись никуда не пропадает. В моем понимании там должно быть. при соединении с брокером появиться 1. а при отключении от от брокера должен появиться 0. а она там остается постоянно. Или это только у меняя так? Проверял на ESP32.
У Вас все работает как нужно,при разрыве брокер посылает willmessage и оно будет у Вас висеть пока не удалите,при восстановлении связи клиент может сам послать на willtopic пустое сообщение и очистить поле или же не пустое, а о том,что он на связи.Давайте рассмотрим пример когда у вас много клиентов,не знаю каким приложением Вы мониторите своих клиентов -Virtuino,KaScada или другое,это не важно,можно в приложении создать отдельную страницу статусов соединения Ваших клиентов,каждому клиенту создать свое текстовое поле,каждому присвоить свой willtopic и willmessage,при обрыве связи клиента 1 брокер отправит сообщение client 1 lost,а при восстановлении клиент туда же отправит,к примеру,client 1 online.SerOv писал(а): ↑19.07.2023{, 23:21}Это у меня только не работает? При включении в WillTopic ничего нет. при обрыве связи там появляется надпись I am lost. это вроде логично. но при дальнейшем восстановлении связи, эта надпись никуда не пропадает. В моем понимании там должно быть. при соединении с брокером появиться 1. а при отключении от от брокера должен появиться 0. а она там остается постоянно. Или это только у меняя так? Проверял на ESP32.
Готовый пример можно показать? Как он отсылает сообщения о потере связи и его востановлении? Не понятно как он это делает. Если ничего не меняется.
так то этим брокер должен заниматься, а не клиент.
клиент не должен специально ничего отправлять - это забота брокераivansidor012 писал(а): ↑19.08.2023{, 01:50},а при восстановлении клиент туда же отправит,к примеру,client 1 online
вот тут же правильно написано: именно базовая станция мониторит клиентов, но никак не сам клиент сам себя)))ivansidor012 писал(а): ↑19.08.2023{, 01:54}Давайте проведем аналогию с мобильной связью,при разговоре телефон и базовая станция обмениваются кучей информации о которой абонент и понятия не имеет, да и не надо ему,при обрыве связи с Вашим собеседником базовая станция может Вам сразу сообщить,что связь нарушена или абонент вышел из зоны действия и Вы будете знать,что собеседник не на связи ,а не взял паузу и молчит,это и будет в случае mqtt WillMessage
ivansidor012 писал(а): ↑19.08.2023{, 01:56}так то этим брокер должен заниматься, а не клиент.
ну на всех основных брокерах именно так и происходит: именно брокер извещает о потере/восстановлении связи
Отправлено спустя 4 минуты 22 секунды:клиент не должен специально ничего отправлять - это забота брокераivansidor012 писал(а): ↑19.08.2023{, 01:50},а при восстановлении клиент туда же отправит,к примеру,client 1 online
Где Вы тут увидели,что клиент должен заниматься отправкой сообщения при разрыве связи,и еще Will ничего не отправляет при восстановлении связи,одним словом прочитайте внимательней поймете о чем речьivansidor012 писал(а): ↑19.08.2023{, 01:56}так то этим брокер должен заниматься, а не клиент.
ну на всех основных брокерах именно так и происходит: именно брокер извещает о потере/восстановлении связи
Отправлено спустя 4 минуты 22 секунды:клиент не должен специально ничего отправлять - это забота брокераivansidor012 писал(а): ↑19.08.2023{, 01:50},а при восстановлении клиент туда же отправит,к примеру,client 1 online
Отправлено спустя 1 минуту 42 секунды:вот тут же правильно написано: именно базовая станция мониторит клиентов, но никак не сам клиент сам себя)))ivansidor012 писал(а): ↑19.08.2023{, 01:54}Давайте проведем аналогию с мобильной связью,при разговоре телефон и базовая станция обмениваются кучей информации о которой абонент и понятия не имеет, да и не надо ему,при обрыве связи с Вашим собеседником базовая станция может Вам сразу сообщить,что связь нарушена или абонент вышел из зоны действия и Вы будете знать,что собеседник не на связи ,а не взял паузу и молчит,это и будет в случае mqtt WillMessage
взгляни на скрин своего же примера: с чего вдруг клиент должен отправлять свой статус, если это работа брокера?
вот это че за пурга?))))
Как я вижу у Вас трудности с освоением прочитанной информации,был конкретный вопрос от пользователя ,что висит сообщение при разрыве связи и не пропадает,как вариант предложил решение как его удалить и мониторить клиентов,и заметьте написано при восстановлении связи клиент отправляет сообщение,а что отправляет брокер можете почитать в инете о работе mqtt серверов,вот выноска с одного из ресурсов "Will Flag - при установленном флаге, после того, как клиент отключится от брокера без отправки команды DISCONNECT(в случаях непредсказуемого обрыва связи и т.д.), брокер оповестит об этом всех подключенных к нему клиентов через так называемый Will Message... ".И еще Вы мне тыкайте,мы с Вами никого не крестили.ivansidor012 писал(а): ↑20.08.2023{, 21:30}взгляни на скрин своего же примера: с чего вдруг клиент должен отправлять свой статус, если это работа брокера?
не вводи в заблуждение: как клиент отправит сообщение о разрыве, если у клиента нет связи по интернету???
Отправлено спустя 3 минуты 19 секунд:
вот в этом сообщении есть скрин, это что вообще за дичь?)))
viewtopic.php?f=71&t=8595&p=125718#p125406
Отправлено спустя 1 минуту 36 секунд:вот это че за пурга?))))
куда, кому и что посылает брокер?))))
какое может быть решение, кроме смены ГОВНОброкера?
подсказать тебе, оскорбленному "тыканием", где находится ближайший мировой суд?)))
чувааааак - это все настраивается на брокере)))hayk писал(а): ↑21.08.2023{, 11:47}Как я вижу у Вас трудности с освоением прочитанной информации,был конкретный вопрос от пользователя ,что висит сообщение при разрыве связи и не пропадает,как вариант предложил решение как его удалить и мониторить клиентов,и заметьте написано при восстановлении связи клиент отправляет сообщение,а что отправляет брокер можете почитать в инете о работе mqtt серверов,вот выноска с одного из ресурсов "Will Flag - при установленном флаге, после того, как клиент отключится от брокера без отправки команды DISCONNECT(в случаях непредсказуемого обрыва связи и т.д.), брокер оповестит об этом всех подключенных к нему клиентов через так называемый Will Message... ".И еще Вы мне тыкайте,мы с Вами никого не крестили.
зачем клиенту1 знать о том что клиент2 потерял связь с брокером через will топик, предназначенный лишь для мониторинга статуса коннекта к брокеру между клиентом1 и брокером???????