基于MQTT物联网的消息推送系统分析

2021-12-24 05:32胡永立
科学与信息化 2021年13期
关键词:发布者客户端消息

胡永立

机科发展科技股份有限公司 北京 100044

引言

当前我国广泛利用物联网信息推送系统,并且具有良好的发展前景,并且逐步形成互联网软件系统,在未来将会在全球推广。本文论述了基于MQTT物联网消息推送系统,进一步优化系统性能。

1 概述MQTT

1.1 概念

MQTT全称Message Queuing Telemetry Transport,于1999年由IBM发布,这是一种消息传输协议。其消息在传输时代码占用空间小,对于远程连接非常有效,这种协议适用低宽带、受限设备的情况。因此,MQTT是物联网智能寄居首次选择的传输协议,可用于多种现实服务中,还可以适用家庭自动化的设备。并且该协议也适用移动运用,积极及耗能均比较小,数据包也是最小的,可有效将信息分解,可传输至一或多个的接收器。

1.2 MQTT功能特征

协议特点具体如下:

开放性。该协议是由IBM公司与Eurotech一起研制的,专门为设备网络定制。MQTT利用二进制形式,通信开销和协议交换比较小,可以降低网络流量,同时可以简化网络复杂度。MQTT支持简单的信息模式。MQTT具有开发公开的协议,可以专业定制设备网络。

轻巧性。传输的格式是最小化的,最小的数据包仅有2比特。所以复杂度较低且容量小。

第三,可靠性。有三种不同服务的质量。发布消息时完全依赖于底层的TCP/IP网络。消息丢失可能发生。如果客户端出现了意外掉线的情况,可以使用另外的方式多发布一条消息。同时,可实现持久性的订阅。MQTT具有三种等级的信息发布服务质量,针对“至多一次”这一级别,表示会产生信息丢失和重复,主要是采集各类环境传感器的数据,记录丢失一次并不会产生较大的影响,因为在不今后会再次发送。针对“至少一次”这一级别,保障信息送达,但是可能会发生信息重复的情况,“只有一次”表示消息传达一次,主要是在计费系统中利用,如果发生信息重复和信息丢失等问题,影响到结果的正确性。

第四,发布以及订阅的消息模式简单,而且积极非常小,在推送传输时可能是不同步的,但这种不同步是可以实现的,可简单的发布、连接、订阅以及断开的使用方式。

MQTT在移动应用中的优势如下:

可靠的传输性。可靠安全信息交互,高可用性以及大规模的支持,和企业服务的建议集成。

消息的实时推送。可实现有效的实时通知,并且所推送的内容非常丰富。订阅以及发布消息十分灵活,能有效存储和过滤消息。

成本低、耗能低、带宽低。这就说明了移动应用程序所占用的空间十分小,而且利用效率比较高,电量耗费也比较小,与SMS相比,更具有经济性。

1.3 工作原理

MQTT结构主要包括MQTT消息代理和MQTT客户端,客户端利用MQTT协议连接消息代理。在推送消息的过程中,MQTT定义了消息代理和发布者以及调阅者,消息代理指的是服务器端,主要是利用Mosquitto应用程序,这是开源信息代理软件,主要负责推送信息,支持信息推送模式。在嵌入式计算机和微型控制器等移动设备中都可以利用这种软件,可以实现设备之间的短消息通信。消息代理服务器端可以接收和管理主题,同时可以接受订阅者,注册并且管理以及维护发布者。同时可以储存发布的信息,并且向有需要的订阅者发送消息。订阅者首先进行注册,随后提交订阅主题,随后等待接受有关主题的消息[1]。

2 概述消息中间件

2.1 概述消息中间件

消息中间件利用消极传递机制,实现平台数据交流,根据数据通信集成分布式系统。构建消息传递和消息排队模型,可以在拓展进程间实现通信,有利于处理网络环境复杂的通信工作。

2.2 消息传递模式

消息中间件主要包括点对点模式和发布/订阅模式。利用点对点模式,主要是通过PTP模式实现消息发布者和信息接受者之间一对一通信,消息发布者向消息队列中发布消息,消息接受者再读取消息。PTP模式比较简单,但是通信双方具有较高的耦合度,同时又缺乏拓展性,如果通信双方某方发生变化,另一方需要变更应用程序,因此无法实现多方数据通信,系统通信灵活性因此受到影响。

在发布/订阅模式中,可以实现多对多的通信,通过建立消息代理服务器的特定主体,因此作为中介,实现多个消息发布者和订阅者之间通信。消息发布者根据主体发布信息,无须考虑信息接受者的目的。消息订阅者需要结合相应主题获取相应的消息,无须考虑信息发送地址。消息订阅者可以将订阅消息分为持久订阅和非持久订阅,利用持久订阅模式,订阅者在不在线状态中,可以暂时存储消息,如果是在线状态,可以向订阅者转发消息。针对非持久订阅模式,要求订阅者必须处于在线状态,如果离线时间比较长,将会自动删除消息。

对比点对点模式,发布/订阅模式可以利用消息代理服务器,提高数据通信双方的松耦合,保障网络拓扑的拓展性和动态性。利用消息代理服务器实现消息和转发和管理,在大规模数据交互过程中,将会影响到消息代理服务器性能,引发单电失效的问题,整体系统的可靠性和高效性因此受到影响[2]。

3 基于MQTT物联网消息推送系统的设计和实现

3.1 设计系统架构

基于MQTT物联网消息推送系统主要包括消息发布者和基于MQTT消息代理服务器以及移动终端,根据实际情况,消息发布者和消息订阅者可能会发生变化,客户端可以发布信息,也可以订阅信息。消息发布者可以向MQTT消息代理服务器发布消息,打包发送数据为信息形式,并且向MQTT消息代理服务器中发送。消息订阅者可以向MQTT消息代理服务器订阅消息,也可以取消订阅的消息,订阅者具有独立的消息接收队伍,并且根据需求解包和解密处理消息。消息推送系统的核心是消息代理服务器,接收了消息之后,需要封装、压缩以及加密处理消息。

3.2 系统工作流程

利用系统初始化模块,可以启动消息代理服务器的服务功能,客户端可以利用客户端初始化模块,高效连接消息代理服务器。移动终端连接了消息代理服务器支护,经过注册获取注册账号,发布/订阅信息主题,利用订阅表管理模块记录订阅主题和账号标识。消息发布者打包处理发送的数据信息,向MQTT消息代理服务器中发送,根据消息优先级,在相应的系统刚接手队伍当中存放消息,消息代理模块在队伍当中获取信息,根据订阅表中的客户端订阅信息,向响应的订阅者推动消息。触发了MQTT消息代理服务器消息监听器之后,根据消息订阅者各种信息,同时可以提醒通知订阅者及时接受消息。消息订阅者利用移动终端监听到最新消息之后,可以读取各个接受队列中的消息。

4 基于MQTT物联网消息推送系统的具体应用

本文论述了基于MQTT的农业物联网消息推送系统,在登录了系统之后可以查看GIS地理定位,通过点击鼠标之后,确定土地种植情况,实时更新传感器采集的数据信息,同时可以发挥远程控制作用,帮助管理人员高效管理农种土地。

4.1 基地生产记录功能

基于MQTT农业物联网消息推送系统主要包括种植记录和施肥记录以及打药记录以及采摘记录。利用种植记录模块可以为用户展示出种植分区和种植种类以及种植时间等情况。利用施肥记录模块记录肥料平成和施肥时间以及施肥对象等,种植人员可以结合施肥记录确定作物施肥的信息,同时可以远程控制施肥工作。利用打药记录模块记负责记录农药名称和农药喷洒时间以及面积等,管理人员可以远程控制农药喷洒工作,有效监控农作物的生长情况。利用采摘记录模块可以记录农作物的采摘情况,详细记录农作物的名称和采摘时间等,通过记录这些时间,避免发生提前采摘等问题。

4.2 数据分析功能

利用各种集成技术,可以利用基于MQTT农业物联网消息推送系统自动采集农作物周边环境的空气温度和湿度以及土壤等信息,实现实时远程传输。系统在实际运行过程中,需要充分发挥出传感器技术的作用,在特定位置安装特定传感器,采集没异性数据参数。如果传感器无法正常工作,那么利用该系统可以反馈于监管人员和决策人员。在数据分析专栏当中,系统可以自动显示传感器的工作状态,如果传感器发生故障,基于MQTT农业物联网消息推送系统可以提出警报,提醒用户及时处理问题。

5 结束语

在MQTT网络消息的推送系统中,选择MQTT协议效果高,而且战胜资源非常低,而且采用订阅以及发布的制度可自动把消息发布者所发布的消息及时推送至移动终端,可有效满足终端资源特点,避免对服务器造成过大的压力,节省人力部门的成本以及网络的资源。因此,在大数据交互消息代理服务器所遇到的问题,可构建服务器集群,有效加强服务器稳定以及可靠性,可有效支持更多用户。

猜你喜欢
发布者客户端消息
你的手机安装了多少个客户端
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
新加坡新法规引争议
一张图看5G消息
带隐私保护的群智感知任务分配机制
晚步见道旁花开
网络大V转发违法广告须担责
媒体客户端的发展策略与推广模式
新华社推出新版客户端 打造移动互联新闻旗舰
寓言