订阅设备上下线消息

$SYS/brokers/${node}/clients/${clientid}/disconnected
$SYS/brokers/${node}/clients/${clientid}/connected
$SYS/brokers/+/clients/+/connected
$SYS/brokers/+/clients/+/disconnected
mqttx中订阅了以上消息,但是还是发现并无法收到任何设备上下线的消息。想确认是不是缺少了什么配置。还是设备端也需要有权限去发布这个消息呢?

  1. mqtt 的 topic 只支持+和#的通配符。${node} ${clientid}只是写在哪里表示这个是个变量的。你可以用

来做。这样就会对。
2. 这些消息是系统消息,不需要设备端发布。
3. 没收到,就把授权(acl) 都关了,然后订阅#,就能看他你订阅的主题和系统发的主题有什么区别了。
关于授权的文档:ACL 文件 | EMQX文档