我想监视客户端从一个单独的进程连接和断开的过程,该进程将订阅一个发布出生和遗嘱消息的系统主题。
emqtt的《用户指南》显示了一个系统主题,该主题提供了一些代理统计信息,即$SYS/brokers/${node}/stats/clients/count
提供了当前已连接客户端的数量。请注意,这不会列出有关已连接客户端的任何详细信息-因此,我认为这不是这里所需要的。
遗嘱(LWT,Last Will和Testament)消息不是系统主题,而是客户端在连接期间设置的常规主题。如果您想监视该主题,只需订阅它。但是请注意,如果客户端通过发送DISCONNECT消息正常断开连接,则会丢弃LWT消息(请参阅hiveMQ博客,敬请阅读)。
emqtt的《用户指南》提供了一种更好的方法来监视客户端的连接和断开连接:
在./bin/emqttd_ctl
命令行可以用来查询和管理的EMQ券商(不工作在Windows上)。
我认为监视clients list
-列出所有MQTT客户端-和clients show <ClientId>
-显示MQTT客户端-在这里最有用。因此,计划的监视客户的单独过程不需要订阅代理,而只需使用代理即可./bin/emqttd_ctl
。
$ ./bin/emqttd_ctl clients list
Client(mosqsub/43832-airlee.lo, clean_sess=true, username=test, peername=127.0.0.1:64896, connected_at=1452929113)
Client(mosqsub/44011-airlee.lo, clean_sess=true, username=test, peername=127.0.0.1:64961, connected_at=1452929275)