在物联网领域多年的开发和架构经历,使我接触到了不同领域的物联网解决方案,比如智能家居中对空调,热水器,洗衣机,室灯等家用设备的单品控制,比如智能办公中通过人脸识别对闸机和门禁进行开关控制,再比如智能建筑中的对高空吊栏危险系数的实时预警等,均反映了物联网正在以前所未有的速度不断的影响着我们的衣食住行,不断的改变人们的生活,使我们的生活更高效,更便捷,更安全。
物联网通讯方式经过多年的迭代,目前以mqtt的通讯协议最为流行。这里我们以mqtt的协议来讲解应用端对消息的处理,应用端mqtt的消息处理方式大致可以分为两类:客户端消息处理,应用服务端消息处理。
一.客户端消息处理
首先我们看一下客户端消息处理的框架,见下图:
客户端消息处理的方式主要的适用场景是在设备端和客户端的信息直接交互,有一定的私密性。比如智能家居场景,用户通过手机控制自己家里的设备。 下面我们来看一下方案实现。
1.1私有解决方案搭建
MqttBroker可以采用mosquitto作为mqtt的broker,mosquitto一款实现了消息推送协议 MQTT的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单。链接地址:https://mosquitto.org
MqttClient可采用流行的eclipse paho,eclipse paho旨在提供可伸缩的开放和标准的 Machine-to-Machine (M2M) 以及物联网消息协议的客户端开源实现。Paho 初始提供 MQTT 发布/订阅实现,且多语言支持,主要支持的语言有java,python,javascript,GoLang,C,C++,C#,android service,Embedded C/C++。链接地址:http://www.eclipse.org/paho/downloads.php
1.2采用阿里云物联网平台
MqttBorker由阿里云提供,阿里云提供海量设备接入,通过物联网平台的配置就可以实现通道功能。另外阿里云提供丰富的MqttClient的SDK,具体参照https://helpcdn.aliyun.com/document_detail/42648.html?spm=a2c4g.11186623.6.643.1eb83f69Cad1OX
二.应用服务端消息处理
我们看一下应用服务端消息处理的框架,见下图:
应用服务端消息处理的方式主要的适用场景是设备的上报信息需要业务服务节点进行统一处理后再对设备发起指令控制。比如智慧办公的门禁场景,门禁摄像头采集到用户脸部信息,通过mqtt broker发送到服务器后,有消息中间件转发给各个业务节点(这里是人脸识别服务节点),识别成功后将开关的控制指令通过mqtt broker发送给设备进行门禁控制。 下面我们来看一下方案实现。
2.1私有解决方案搭建
MqttBroker和MqttClient可以参照上例客户端消息处理的mosquitto和eclipse paho,消息中间件可以采用rabbitmq来进行消息转发。链接地址:http://www.rabbitmq.com
2.2采用阿里云物联网平台
MqttBroker和MqttClient可以参照上例客户端消息处理的说明,另外消息转发可以采用阿里云MNS服务实现消息转发拉取功能。 以上是IoT应用端消息处理的两种策略的分享,希望对大家有用。
原文作者:辰云
点击查看原文