MQTT 协议 是基于发布/订阅模式的物联网通信协议,凭借简单易实现、支持 QoS、报文小等特点,占据了物联网协议的半壁江山。
常用于 IOT 物联网和一些需要服务端主动通知客户端的场景。
1 导入依赖
2 创建 MqttHelper 辅助类,设置回调监听
3 连接 MQTT
连接成功或失败,以及中途的连接掉线,会触发 OnMqttStatusChangeListener 回调
4 MQTT 连接状态监听
5 MQTT 收发消息监听
onSubMessage 订阅的消息回调,因为存在订阅多个 topic 的情况,所以回调能知道是来自哪个 Topic 的消息;
onPubMessage 发布的消息回调,用于确认发布的消息是否发送成功。
6 MQTT 订阅 Topic
需要在 MQTT 连接成功后才能订阅 topic,否则订阅 Topic 不成功,收不到对应消息
7 MQTT 取消订阅 Topic
8 MQTT 发布消息
9 MQTT 断开连接
10 通知设置
由于 MQTT 启动了一个 Service,而 Android 80 以上对于后台 Service 限制时长 5 秒;所以将 MqttService 绑定到 Notification 上成为了一个前台通知;通知的标题和内容显示可以在 stringsxml 中设置,对应属性如下:
Android 80 及以上开启前台服务绑定到通知,80 以下默认不启用,可将 mqtt_foreground_notification_low_26 设为 true,将 80 以下设备也开启前台通知服务
创建 MQTT 实例时需要传送参数 MqttOptions,下面将介绍下部分参数;
1 Topic
MQTT 是一种发布/订阅的消息协议, 通过设定的主题 Topic,
发布者向 Topic 发送的 payload 负载消息会经过服务器, 转发到所有订阅
该 Topic 的订阅者
通配符 : 假想移动端消息推送场景,有的系统消息是全体用户接收,有的消息是 Android 或 iOS 设备接收, 又或者是某些消息具体推送到用户,当然, 对应的多种类型消息可以通过多订阅几个对应的 Topic 解决,也可以使用通配符;
通配符有两个, " + " 和 " # ", 与正斜杠 " / " 组合使用;加号只能表示一级Topic, 井号可以表示任意层级 Topic; 例如: 订阅 Topic为 " System/+ ", 发布者发布的 Topic 可以是 System、System/Android、System/iOS; 但是不能是 System/iOS/123, 而订阅的 Topic 如果是" System/# " 则可以收到;
注意,只有订阅的 Topic 才可以使用 通配符, 发布和遗嘱的 Topic 不能包含通配符
2 ClientID
发布者和订阅者都是属于客户端, 客户端与服务端建立连接之后,发送的第一个报文消息必须是 Connect 消息,而 Connect 的消息载荷中必须包含 clientID 客户端唯一标识;
如果两个客户端的 clientID 一样, 则服务端记录第一个客户端连接之后再收到第二个客户端连接请求,则会向一个客户端发送 Disconnect 报文断开连接, 并连接第二个客户端, 而如果此时设置了自动重连, 第一个客户端再次连接,服务端又断开与第二个的连接, 连上第一个客户端, 如此将导致两个客户端不断的被挤掉重连
注意: clientID 使用的字符最好是 大小写字母和数字, 长度最好限制在[1, 23] 之间;
3 遗嘱消息
可选参数, 客户端没有主动向服务端发起 disconnect 断开连接消息,然而服务端检测到和客户端之间的连接已断开, 此时服务端将该客户端设置的遗嘱消息发送出去
应用场景: 客户端因网络等情况掉线之后, 可以及时通知到所有订阅该遗嘱 Topic 的客户端;
遗嘱 Topic 中不能存在通配符
4 Session
客户端和服务端之间建立的会话状态, 一般用于消息保存, 如果设置清除 Session,则每次客户端和服务端建立连接会创建一个新的会话,之前连接中的消息不能恢复,
而设置不清除会话, 对应发布者发送的 qos 为 1和2 的消息,还未被订阅者接收确认,则需要保存在会话中, 以便订阅者下次连接可以恢复这些消息;
注意: Session 存储的消息是保存在内容中的, 所以如果不是重要的消息,最好是设置清除 Session, 或者设置 qos = 0;
5 心跳包
标识客户端传输一次控制报文到下一次传输之间允许的空闲时间;在这段时间内,如果客户端没有其他任何报文发送,必须发送一个 PINGREQ 报文到服务器,而如果服务端在 15 倍心跳时间内没有收到客户端消息,则会主动断开客户端的连接,发送其遗嘱消息给所有订阅者。而服务端收到 PINGREQ 报文之后,立即返回 PINGRESP 报文给客户端
心跳时间单位为秒,占用2个字节,最大 2^16 - 1 = 65535秒(18小时12分钟15秒),设置为 0 表示不使用心跳机制; 心跳时间一般设置为几分钟或几十秒即可,时间短点可以更快的发出遗嘱消息通知掉线,但是时间短会增加消息频率,影响服务端并发; 微信长连接为 300 秒,而三大运营商貌似也有个连接时间最小的为 5 分钟。
6 qos
服务质量等级 qos 对应两部分,一是客户端到服务端发送的消息, 一是服务端到客户端订阅的消息; 从发布者到订阅者实际 qos 为两段路中 qos 最小的。
qos 可选值 0(最多交付一次)、1(最少交付一次)、2(正好交付一次);
qos = 0 :接收方不发送响应,发送方不进行重试;发送方只管发一次,不管是否发成功,也不管接收方是否成功接收,适用于不重要的数据传输;
qos = 1 :确保消息至少有一次到达接收方,发送方向接收方发送消息,需要等待接收方返回应答消息,如果发送方在一定时间之内没有收到应答,发送方继续下一次消息发送,直到收到应答消息,删除本地消息缓存,不再发送;所以接收方可能收到1-n次消息;适用于需要收到所有消息,客户端可以处理重复消息。
qos = 2 :确保消息只一次到达接收方,发送方和接收方之间消息处理流程最复杂;
Mqtt Qos 深度解读 和 MQTT协议QoS2 准确一次送达的实现
7 payload 负载消息
字节流类型, 是 MQTT 通信传输的真实数据
8 保留消息
发布消息时设置, 对应参数 retain, 服务端将保留对应 Topic 最新的一条消息记录; 保留消息的作用是每次客户端连接上线都会收到其 Topic 的最后一条保留消息, 所以可能存在网络不稳定,频繁掉线重连,每次重连重复收到保留消息;
可以向对应的 Topic 发送一条 空消息,用于清除保留消息。
MQTT 服务搭建 Apache Apollo 服务器 搭建 MQTT 服务
Github 仓库
mqtt 协议
行业主要上市公司:大富科技(300134)、梦网集团(002123)、共进股份(603118)、胜宏科技(300476)、润和软件(300339)、立昂技术(300603)等
本文核心数据:物联网产业规模、竞争格局、发展前景预测等
产业概况
1、定义
所谓“物联网”(Internet of
Things,IOT),又称传感网,指的是将各种信息传感设备,如射频识别(RFID)装置、红外感应器、全球定位系统、激光扫描器等种种装置与互联网连接起来并形成一个可以实现智能化识别和可管理的网络。
早期的物联网是指依托射频识别技术的物流网络,随着技术和应用的发展,物联网的内涵已经发生了较大的变化。现阶段,物联网是指在物理世界的实体中部署具有一定感知能力、计算能力和执行能力的各种信息传感设备,通过网络设施实现信息传输、协同和处理,从而实现广域或大范围的人与物、物与物之间信息交换需求的互联。物联网依托多种信息获取技术,包括传感器、射频识别(RFID)、二维码、多媒体采集技术等。物联网的几个关键环节可以归纳为“感知、传输、处理”。
2、产业链剖析:共有四大层面
所谓产业链,是以生产相同或相近产品的企业集合所在产业为单位形成的价值链,是承担着不同的价值创造职能的相互联系的产业围绕核心产业,通过对信息流、物流、资金流的控制,在采购原材料、制成中间产品以及最终产品、通过销售网络把产品送到消费者手中的过程中形成的由供应商、制造商、分销商、零售商、最终用户构成的一个功能链结构模式。
从产业链条来看,物联网的产业链条由上而下可以分为感知层、传输层、平台层和应用层四个层级。
自2018年中美贸易摩擦以来,美国加大了对中国高新技术出口的限制,不断扩大实体清单,影响了中国一些科技主导型企业的发展,这从侧面警示了中国在全球供应链中地位的脆弱性。物联网通过传感器把物理世界与数字世界联系起来,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。其中传感器作为数据采集的源头,已经成为各种应用能力所需的数据来源所在。目前中国国内也涌现出了一些传感器芯片重点生产企业,如:高德红外、西人马、士兰微、敏芯微电子、博通、全志科技、大唐微电子、复旦微电子等。
行业发展历程:处于市场验证期
物联网是通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等
信息传感设备,按约定的协议,把任何物体与因特网连接起来,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络。物联网发展历史悠久,可分为三个阶段:
行业政策背景:政策大力推进
根据最新发布的《中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要》,在“十四五”期间,明确新基建,还要让5G用户普及率提高到56%。并且5次提到关于物联网的规划发展,除了划定数字经济的7大重点产业外,其余4次提到的场合均体现出对物联网发展重点的表述。
十四五规划中划定了7大数字经济重点产业,包括云计算、大数据、物联网、工业互联网、区块链、人工智能、虚拟现实和增强现实,这7大产业也将承担起数字经济核心产业增加值占GDP超过10%目标的重任。
产业发展现状
1、中国物联网连接数快速增长
全球物联网仍保持高速增长。物联网领域仍具备巨大的发展空间,根据GSMA发布的《The mobile economy
2020(2020年移动经济)》报告显示,2019年全球物联网总连接数达到120亿,预计到2025年,全球物联网总连接数规模将达到246亿,年复合增长率高达13%。我国物联网连接数全球占比高达30%,2019年我国的物联网连接数363亿。而根据2021年9月世界物联网大会上的数据,2020年末,我国物联网的数量已经达到453亿个,预计2025年能够超过80亿个。
2、应用层与平台层价值最高
从产业链价值分布看,应用层和平台层贡献最大的附加值,分别占到35%左右,传输连接层虽然重要,但产值规模较小;底层的感知层元器件由于种类众多,产业价值也较大,占到20%左右。
3、物联网应用者使用情况调研
微软发布的第三版《IoT Singal(物联网信号)》报告显示,2021年物联网的应用持续保持增长。91%的受访组织是物联网应用者。
物联网项目可分为四个阶段:学习、试验/概念验证、购买和使用。2021年,29%的物联网项目处于学习阶段;处于试验/概念验证阶段的项目比例仍保持不变,2020年和2021年均为25%;处于购买阶段的项目比例增加了1%,从2020年的21%增加到2021年的22%;处于使用阶段的项目在2020年和2021年保持稳定,均为25%。
4、中国物联网市场规模突破25万亿
目前,物联网已较为成熟地运用于安防监控、智能交通、智能电网、智能物流等。近几年来,在各地政府的大力推广扶持下,物联网产业逐步壮大。再加之近几年厂商对物联网这一概念的普及,民众对物联网的认知程度不断提高,使得我国物联网市场规模整体呈快速上升的趋势。2019年我国物联网市场规模约在176万亿元左右,2020年根据赛迪公布的数据,我国物联网市场规模约达到214万亿元左右。初步统计,2021年市场规模为263万亿元。预计未来三年,中国物联网市场规模仍将保持18%以上的增长速度。中国物联网市场投资前景巨大,发展迅速,在各行各业的应用不断深化,将催生大量的新技术、新产品、新应用、新模式。
产业竞争格局
1、区域竞争:北京物联网相关项目最多
工信部共公开2批《物联网关键技术与平台创新类、集成创新与融合应用类项目公示名单》,结合2批的项目名单分析,目前中国物联网关键技术与平台创新类、集成创新与融合应用类项目主要集中在北京、浙江、广东和山东。
2、企业竞争:各个行业的企业在相关领域有所布局,以龙头企业间的竞争为主
物联网技术的应用是传统行业转型升级的根本,传统行业转型升级的方向以“数字化”和“智慧化”为主。根据物联网的应用领域来看,企业在各自行业的“数字化”和“智慧化”有所布局。
互联网周刊发布了2021物联网企业100强,榜单显示华为排名第一、海尔智家、海康威视位居第二和第三,小米集团、中兴通讯、大华股份、阿里云、联通数科物联网、科大讯飞、神州控股进入前十,依次排名第4-10名。
产业发展前景:物联网将继续保持高速增长
1、发展前景:市场规模不断扩大,产业物联网占比逐渐上升
物联网是中国新一代信息技术自主创新突破的重点方向,蕴含着巨大的创新空间,在芯片、传感器、近距离传输、海量数据处理以及综合集成、应用等领域,创新活动日趋活跃,创新要素不断积聚。物联网在各行各业的应用不断深化,将催生大量的新技术、新产品、新应用、新模式。中国以加快转变经济发展方式为主线,更加注重经济质量和人民生活水平的提高,采用包括物联网在内的新一代信息技术改造升级传统产业,提升传统产业的发展质量和效益,提高社会管理、公共服务和家居生活智能化水平。未来巨大的市场需求将为物联网带来难得的发展机遇和广阔的发展空间。综合多方面的情况分析,前瞻认为未来6年中国物联网的发展将保持高速增长,到2027年市场规模超过7万亿元。
根据信通院于2020年12月发布的《2020中国物联网白皮书》,2019年中国物联网连接数中产业物联网和消费者市场各占一半,预计到2025年,物联网连接数的大部分增长来自于产业市场,产业物联网的连接数将占到总体的61%。由此来看,未来产业物联网的市场发展潜力大于消费物联网。
2、发展趋势:重点城市带动周边城市发展,分工协作格局将进一步显现
国内物联网产业已初步形成环渤海、长三角、珠三角,以及中西部地区等四大区域集聚发展的总体产业空间格局。其中,长三角地区产业规模位列四大区域的首位。未来中国物联网产业空间演变将呈现出三大趋势:
更多本行业研究分析详见前瞻产业研究院《中国物联网行业细分市场需求与投资机会分析报告》。
2、西安交通大学
3、东南大学
4、江南大学
5、北京交通大学
6、武汉大学
7、北京理工大学
8、北京邮电大学
9、河海大学
10、吉林大学
11、华中师范大学
12、武汉理工大学
13、北京工业大学
14、南京邮电大学
15、东北大学
16 、南京航空航天大学
17、华中科技大学
18、北京科技大学
19、苏州大学
20、杭州电子科技大学
物联网专业作为国家倡导的新兴战略性产业,物联网备受各界重视,并成为就业前景广阔的热门领域,使得物联网成为各家高校争相申请的一个新专业,主要就业于与物联网相关的企业、行业,从事物联网的通信架构、网络协议和标准、无线传感器、信息安全等的设计、开发、管理与维护,也可在高校或科研机构从事科研和教学工作。
物联网的体系结构可以分为感知层,网络层和应用层三个层次。
感知层。是物联网发展和应用的基础,包括传感器或读卡器等数据采集设备、数据接入到网关之前的传感器网络。感知层以RFID、传感与控制、短距离无线通信等为主要技术,其任务是识别物体和采集系统中的相关信息,从而实现对“物”的认识与感知。
网络层。是建立在现有通信网络和互联网基础之上的融合网络,网络层通过各种接入设备与移动通信网和互联网相连,其主要任务是通过现有的互联网、广电网络、通信网络等实现信息的传输、初步处理、分类、聚合等,用于沟通感知层和应用层。目前国内通信设备和运营商实力较强,是我国互联网技术领域最成熟的部分。
应用层。是将物联网技术与专业技术相互融合,利用分析处理的感知数据为用户提供丰富的特定服务。应用层是物联网发展的目的。物联网的应用可分为控制型、查询型、管理型和扫描型等,可通过现有的手机、电脑等终端实现广泛的智能化应用解决方案。
资料拓展:
物联网的整个结构可分为射频识别系统和信息网络系统两部分。射频识别系统主要由标签和读写器组成,两者通过RFID空中接口通信。读写器获取产品标识后,通过internet或其他通讯方式将产品标识上传至信息网络系统的中间件,然后通过ONS解析获取产品的对象名称,继而通过EPC信息服务的各种接口获得产品信息的各种相关服务。整个信息系统的运行都会借助internet的网络系统,利用在internet基础上的发展出的通信协议和描述语言。
因此我们可以说物联网是架构在internet基础上的关于各种物理产品信息服务的总和。从应用角度来看,物联网中三个层次值得关注,也即是说,物联网由三部分组成:一是传感网络,即以二维码、RFID、传感器为主,实现对“物”的识别。二是传输网络,即通过现有的互联网、广电网络、通信网络等实现数据的传输与计算。三是应用网络,即输入输出控制终端。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)