Estoy ejecutando emqttd ( emqtt.io ). Me gustaría monitorear a los clientes que se conectan y desconectan de un proceso separado que se suscribirá a un tema del sistema donde se publicarán los mensajes de nacimiento y voluntad. ¿Cuál es la forma correcta de hacer eso?
11
Respuestas:
La Guía del usuario de emqtt muestra un tema del sistema que ofrece algunas estadísticas de intermediario, es decir,
$SYS/brokers/${node}/stats/clients/count
proporciona el recuento de clientes conectados actualmente. Tenga en cuenta que esto no enumerará ningún detalle sobre los clientes conectados, así que supongo que no es lo que se necesita aquí.Los mensajes de última voluntad (LWT, Última voluntad y Testamento) no son un tema del sistema, sino un tema regular según lo configurado por el cliente durante la conexión. Si desea monitorear ese tema, simplemente suscríbase. Sin embargo, tenga en cuenta que los mensajes LWT se descartan si un cliente se desconecta con gracia mediante el envío de un mensaje DESCONEXIÓN (consulte el blog hiveMQ , gran lectura por cierto).
La Guía del usuario de emqtt presenta una mejor manera de monitorear la conexión y desconexión de clientes:
Creo que el monitoreo
clients list
- enumerar todos los clientes MQTT - yclients show <ClientId>
- mostrar un cliente MQTT - es más útil aquí. Por lo tanto, el proceso separado planificado para monitorear clientes no necesita suscribirse al corredor, sino simplemente utilizarlo./bin/emqttd_ctl
.fuente
Bueno, no estoy seguro sobre el mensaje de nacimiento y LWT (Last Will and Testament) es opcional según las especificaciones. Por lo tanto, no necesariamente recibiría mensajes a menos que tuviera su corredor personalizado para tales requisitos.
fuente