阿里云 IoT企业物联网平台为不同场景的硬件提供了多种通信模式,例如设备到云,云到设备,设备到设备之间的通信。尽管不同业务场景设备和交互行为差异很大,但是大多数底层数据流通信模型都可以归类为三种MQTT模式:点对点模式,广播模式和同步调用模式。
当我们基于阿里云IoT企业物联网平台搭建硬件端到App端物联网业务时,完整业务数据链路的架构示意图如下:
设备与IoT物联网平台之间的通信:
-
设备通过MQTT协议的Publish,发送数据到物联网平台,如图①。
-
设备通过MQTT协议的Subscribe,实时监听物联网平台下发的指令,如图⑤ 。
业务服务器和IoT物联网平台之间的通信:
-
数据流转到业务服务器
-
-
通过配置物联网平台的规则引擎,可以将数据实时写入到 数据库,业务服务器直接从数据库获取数据,如图②。
-
通过配置物联网平台的规则引擎,可以使用AMQP协议, 将数据实时推送到业务服务器,如图③。
-
-
业务系统下发控制指令到设备
-
-
业务服务器通过调用物联网平台API,下发控制指令,如图④。
-
点对点模式
点对点通信模式是设备在MQTT中基本的消息发送和消息接收模式。
设备上报消息给云端
设备端可通过MQTT的Publish指令,传入设备的DeviceName 后,可以上报消息到物联网平台。如下图所示
同一产品下海量设备上报的消息可以通过云产品流转汇总接收。如下图所示
云端下发消息到设备端
云端下发消息给设备的能力,可通过调用物联网平台提供的Pub 接口,传入目标设备的DeviceName来实现。如下图所示
设备与设备间通信M2M
接入同一个企业物联网实例的设备A和设备B之间可以通过云平台规则引擎的Topic流转规则来实现设备间通信(M2M),如下图所示
消息广播模式
在线设备全量广播消息
针对同一产品下全量在线设备广播消息的场景,物联网平台 提供了广播接口,可最大每分钟调用1次。
指定Topic的全量设备广播消息
相同产品下的设端可以订阅相同的广播Topic (/broadcast/${productKey}/xxx),业务服务器调用物联网平台提供的PubBroadcast接口,向已订阅广播Topic 的在线设备推送广播消息。
一个广播Topic最多支持被1000个 设备订阅。 当设备数量超过1千台,您可以对设备进行分组。例如,如果您有5,000个设备,您可以将设备按每组1,000个,而分成5组(例如 /broadcast/${productKey}/group1)。您需要分5次调用PubBroadcast接口,以便实现全量设备(即使设备当前离线)广播的目的。
同步消息RRPC模式
MQTT协议是基于Pub/Sub的异步通信模式,不适用于服务端同步 控制设备端返回结果的场景。物联网平台基于MQTT协议制定了一套请求和响应的同步机制,无 需改动MQTT协议即可实现同步通信。物联网平台提供API给服务端, 设备端只需要按照固定的格式回复PUB消息,服务端使用API,即 可同步获取设备端的响应结果。
同步RRPC具体流程如下:
-
设备端订阅RRPC相关Topic。
-
业务服务器调用物联网平台的RRPC接口。
-
物联网平台收到服务器端RRPC调用请求,向设备下发一条 RRPC请求消息。
-
设备端接收到RRPC消息,执行业务指令,向IoT平台回复一条 RRPC响应消息。
-
物联网平台提取设备上报RRPC响应的消息ID,和业务系统的RRPC请求消息匹配。
-
物联网平台将响应结果作为RRPC的响应返回给指定服务器。
在阿里云 IoT企业物联网平台上,组合使用以上三种模式,即可轻松搞定物联网场景消息通信需求。
往期推荐
1、HarmonyOS 到底是不是Android套壳?
2、5G将是一个彻底失败的通信技术吗?
3、AWS IoT 物联网平台 MQTT 通讯模式
4、IoT平台如何实现 100万/秒消息广播?
5、无GPS模块,IoT设备如何定位?
6、 IoT物联网 4 本好书推荐
本文章来源于互联网,如有侵权,请联系删除!原文地址:阿里云 IoT 企业物联网平台 MQTT 通讯模式