开发者社区> 问答> 正文

MQTT使用问题

我公司的硬件产品使用阿里云的LMQ 与服务端通信,硬件产品订阅“ares-test-mqtt”主题,服务端通过这个主题向设备发送数据,使用过程中发现2个问题。

问题1:硬件产品订阅“ares-test-mqtt”主题会出现失效的情况。通信过程如下:
(1) 硬件产品开机后,发送CONNECT连接MQTT服务器:
105700044d51545404c2003c001b4749445f544553545f41524553404040414130303030303030303800106f746b44716b545844746e73576f4245001c4f776d68346c4458345357383456585739653570517171534145633d

服务器回复CONNACK确认连接请求:
20 02 00 00

(2) 硬件产品发送SUBSCRIBE订阅主题:
82130001000e617265732d746573742d6d71747400

服务器回复SUBACK订阅确认:
90 03 00 01 00

上面的过程执行完,大部分情况硬件产品都可以接收“ares-test-mqtt”主题发来的数据,有时会出现执行完上面过程,但是收不到“ares-test-mqtt”主题消息。这种情况下MQTT心跳收发是正常的:

   硬件产品发送:C0 00
   服务器回复:D0 00

出现问题的硬件产品向服务端发送数据是正常的。
出现这个现象之后,在阿里云后台查看,该硬件产品已经订阅了“ares-test-mqtt”主题。

问题2:在一台硬件产品成功连接MQTT服务器后,另一个相同ClientId的硬件产品发送CONNECT连接MQTT服务器,之前的设备并没有被踢掉,还保持连接,并且两台硬件产品都可以订阅“ares-test-mqtt”主题,收到了主题消息。
阿里云的帮助文档是这样描述的:

展开
收起
科大物联 2018-08-20 14:50:55 4134 0
1 条回答
写回答
取消 提交回答
  • www.zyl.me 爱折腾,喜欢造,花起钱来毫不心疼,事后沉默一周... 极简主义者,主从事Web开发兼前端爱好者。 全栈开发尝试者、自媒体、极简主义者、爱心极客

    提工单咯

    2019-07-17 23:01:37
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载