上下线通知

EMQX 的上下线系统消息通知功能在客户端连接成功或者客户端断开连接,自动发送一条系统主题的消息, EMQX 默认开启上下线通知模块。

创建模块

上下线通知模块默认启动,可以通过dashboard页面进行启动和停止。

打开 EMQX Dashboard上下线通知 - 图1 (opens new window),点击左侧的 “模块” 选项卡:

image-20200927213049265

上下线消息通知格式

$SYS 主题前缀: $SYS/brokers/${node}/clients/

主题 (Topic)说明
${clientid}/connected上线事件。当任意客户端上线时,EMQX 就会发布该主题的消息
${clientid}/disconnected下线事件。当任意客户端下线时,EMQX 就会发布该主题的消息

connected 事件消息的 Payload 解析成 JSON 格式如下:

  1. {
  2. "username": "foo",
  3. "ts": 1625572213873,
  4. "sockport": 1883,
  5. "proto_ver": 4,
  6. "proto_name": "MQTT",
  7. "keepalive": 60,
  8. "ipaddress": "127.0.0.1",
  9. "expiry_interval": 0,
  10. "connected_at": 1625572213873,
  11. "connack": 0,
  12. "clientid": "emqtt-8348fe27a87976ad4db3",
  13. "clean_start": true
  14. }

disconnected 事件消息的 Payload 解析成 JSON 格式如下:

  1. {
  2. "username": "foo",
  3. "ts": 1625572213873,
  4. "sockport": 1883,
  5. "reason": "tcp_closed",
  6. "proto_ver": 4,
  7. "proto_name": "MQTT",
  8. "ipaddress": "127.0.0.1",
  9. "disconnected_at": 1625572213873,
  10. "clientid": "emqtt-8348fe27a87976ad4db3"
  11. }