Я использую emqttd ( emqtt.io ). Я хотел бы отслеживать клиентов, подключающихся и отключающихся от отдельного процесса, который будет подписываться на системную тему, где размещаются сообщения о рождении и будут. Как правильно это сделать?
11
Ответы:
Руководство пользователя emqtt показывает системную тему, которая предлагает некоторую статистику брокера, т.е.
$SYS/brokers/${node}/stats/clients/count
предоставляет счетчик текущих подключенных клиентов. Обратите внимание, что здесь не будут перечислены какие-либо подробности о подключенных клиентах, поэтому я считаю, что это не то, что здесь необходимо.Сообщения о последней воле (LWT, Last Will и Testament) - это не системная тема, а обычная тема, настраиваемая клиентом во время подключения. Если вы хотите следить за этой темой, просто подпишитесь на нее. Однако обратите внимание, что сообщения LWT отбрасываются, если клиент корректно отключается, отправляя сообщение DISCONNECT (см. Блог hiveMQ , отлично читайте, кстати).
В руководстве пользователя emqtt представлен лучший способ мониторинга подключения и отключения клиентов:
Я думаю, что мониторинг
clients list
- перечисление всех клиентов MQTT - иclients show <ClientId>
- показ клиента MQTT - наиболее полезны здесь. Поэтому запланированный отдельный процесс для мониторинга клиентов не должен подписываться на брокера, а просто используется./bin/emqttd_ctl
вместо этого.источник
Ну, не уверен насчет сообщения о рождении, и LWT (Last Will и Завет) необязательны согласно спецификации. Таким образом, вы не обязательно будете получать сообщения, если ваш брокер не настроен на такие требования.
источник