方式一 emqx中配置规则,将上线、离线的消息转发到新的主题,随后程序中监听这个新主题即可
规则sql配置为
SELECT
*
FROM
"$events/client_connected",
"$events/client_disconnected"
转发配置
随后将这个规则启用即可
方式二 使用系统消息捕获上线、离线的消息随后处理业务逻辑
首先需要调整配置,将系统消息的权限放开
随后订阅指定的主题即可
$SYS 主题前缀: $SYS/brokers/${node}/clients/
主题 (Topic) 说明
${clientid}/connected 上线事件。当任意客户端上线时,EMQX 就会发布该主题的消息
${clientid}/disconnected 下线事件。当任意客户端下线时,EMQX 就会发布该主题的消息
需要注意主题在订阅时可以写为$SYS/brokers/+/clients/# 这样即可同时捕获两个主题
捕获单个主题则分开写
$SYS/brokers/+/clients/+/connected
$SYS/brokers/+/clients/+/disconnected
标签:clients,掉线,主题,SYS,connected,brokers,emqx,监听
From: https://www.cnblogs.com/ives/p/17478394.html