淡然逝去 2023-11-15 09:31 采纳率: 33.3%
浏览 21
已结题

RabbitMQ-MQTT上下线

使用MQTT协议,RabbitMQ做代理,eclipse paho做MQTT客户端怎么实现设备的上下线监听?RabbitMQ支持MQTT的系统主题订阅吗?类似topic:$SYS/# ?

  • 写回答

1条回答 默认 最新

  • hbcqg712 2023-11-19 17:51
    关注

    使用 MQTT 协议,RabbitMQ 做代理,可以通过订阅 $SYS/broker/clients/connected 和 $SYS/broker/clients/disconnected 系统主题,来监听设备的上下线事件。

    具体实现步骤如下:

    连接 RabbitMQ 代理服务器:使用 Eclipse Paho 或其他 MQTT 客户端,连接到 RabbitMQ 代理服务器。

    订阅系统主题:使用 MQTT 客户端,订阅 $SYS/broker/clients/connected 和 $SYS/broker/clients/disconnected 系统主题。

    处理上下线事件:当设备上线时,会收到 $SYS/broker/clients/connected 主题的消息,消息内容为设备的客户端 ID。当设备下线时,会收到 $SYS/broker/clients/disconnected 主题的消息,消息内容也为设备的客户端 ID。根据收到的消息,可以处理设备的上下线事件。

    取消订阅并断开连接:在不需要监听设备上下线事件时,可以取消订阅系统主题并断开连接。

    需要注意的是,RabbitMQ 支持 MQTT 的系统主题订阅,类似 $SYS/#,可以订阅一系列系统主题。但是,具体支持哪些系统主题,以及系统主题的格式和内容,可能会因版本和配置不同而有所差异。因此,在实际使用时需要仔细查阅相关文档,确认支持的系统主题和订阅方式。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月19日
  • 创建了问题 11月15日