物联网设备MQTT接入的思考

一.背景

        项目需要接入物联网设备,我从一个小白开始接触,没有系统的学习,靠着理解力和零散的网络资料,一步步的记录小白如何完成任务的。

二.关于多个设备消息监听的问题

        自己已经在本机搭建了MQTT的Server端,也用模拟工具、代码、物联网设备(1个温湿度计)做了连通的测试了。后面再补一篇文章,过程最难的还是网络问题引起的乌龙。

        未来用户的场景,是现场安装设备,安装之后,就需要设置设备。设置好了后,数据都到了云端。那么云端怎么取出这么多的设备信息呢?还是一个一个topic的去订阅么?因为我的物联网设备上传的topic是:WifiSHT/设备id/SHT20。那不是每一个设备上传,我都要去配置监听的topic哦?不同厂家的设备,topic格式会不会不一样呢?

        我第一个思路想到的就是通过一些api获取所有的topic,让用户选择对应的设备。简单找了一下资料,发现activeMQ有对应的API。但是相关资料不多,说明我的方向不太对。

        我之前想,我是否可以写一个表达式,来方便topic名字的监听。顺着向下,发现topic支持通配符的。比如同一个厂家或者系列的产品,以我的温湿度计为例topic可能是WifiSHT/设备id1/SHT20、WifiSHT/设备id2/SHT20、WifiSHT/设备id3/SHT20、。。。。。。那么,我们监听的topic只需要一个 WifiSHT/+/SHT20。这个“+”号就帮我们通配了不同的设备,换句话说,订阅这1个topic就能收到这个系列多个设备回传的数据了。当然,这里的1个topic说法可能不准确,其内部实现的原理不一定是一个topic,可能只是一种通配的方式而已。暂时没有必要深究下去。当然格式不同,可能还有其他的符号。比如测试工具MQTT X添加订阅时的demo就是以“#”号结尾的。#代表多级,类似spring包扫描的**。

三.通配符 “+”和“*”

+:匹配/之间的一段

*:匹配多段

四.参考地址

MQTT 基础--MQTT 主题、通配符和最佳实践 :第 5 部分_网络安全那些事的博客-CSDN博客_mqtt主题通配符

感谢原作者

你可能感兴趣的:(云原生,服务器,环境搭建,物联网,MQTT,数据,topic,订阅)