2。1 MQTT理论

2。1。1 MQTT简介

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是由IBM公司提出的一个基于代理的消息传输协议。它是一种构建于TCP/IP协议并且基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议。它最大优点在于可以通过极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。尤其适合机器与机器通信和物联网环境。

2。1。2 工作原理

MQTT分为两个部分:MQTT客户端,MQTT服务端。使用MQTT协议连接到网络服务器的客户端可以:发布其他客户端可能会订阅的信息,订阅其它客户端发布的消息,退订或删除应用程序的消息,断开与服务器连接。

MQTT服务器以称为“消息代理”(Broker)可以:接受来自客户的网络连接,接受客户发布的应用信息,处理来自客户端的订阅和退订请求。向订阅的客户转发应用程序消息。

MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)[[[] 李金凤。 一种基于MQTT发布/订阅机制的冷藏运输智能监控系统[J]。 互联网天地,2014,07:30-33。]]。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。如图2-1所示:

图 2-1  MQTT原理图

MQTT传输的消息分为:主题(Topic)和负载(payload)两部分。 Topic,即消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息。payload,即消息的内容,是指订阅者具体要使用的内容。

MQTT会构建底层网络传输:它将建立客户端到服务器的连接,提供两者之间的一个有序的、无损的、基于字节流的双向传输。当应用数据通过MQTT网络发送时,MQTT会把与之相关的服务质量(QoS)和主题名(Topic)相关联。并且发布/订阅这种机制通过代理服务器中的Topic作为中介相互之间进行通信。Subscribe和Publish之间并不通过TCP协议建立连接,发布的消息先进入一个队列,当订阅者对其中一个或多个主题感兴趣的时候,便接受感兴趣的消息。在这个时候,订阅者无需知道消息来自于哪个发布者。这种消息机制大大降低了程序的耦合性。让网络拓扑的形态更加的动态和可拓展性。

选择接受和处理的消息的过程被称作过滤。有两种常用的过滤形式:基于主题和基于内容。在基于主题的系统中,只有相同主题间的发布者和订阅者才能通信。发布者发布消息到消息代理,此时如果订阅者向该消息代理注册订阅,并且订阅消息的主题与发布者相同时,便接收同样的消息。消息代理将订阅者的消息行存储并转发到订阅者。由于发布/订阅的消息模式,支持一对多的订阅方式,即允许多个订阅者对同一个主题的消息进行订阅[[[] Daniel Barata,Gonçalo Louzada,Andreia Carreiro,António Damasceno。 System of Acquisition, Transmission, Storage and Visualization of Pulse Oximeter and ECG Data Using Android and MQTT[J]。 Procedia Technology,2013,9:。]]。

2。1。3 功能及特点

作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。这些特点使它局限于某些场景,但不仅限制于此。该协议网络代价昂贵,带宽低、不可靠。在嵌入设备中运行,处理器和内存资源有限。

它使用发布/订阅消息模式,提供一对多的消息发布,减少应用程序耦合。并且对负载内容屏蔽的消息传输。使用 TCP/IP 提供网络连接。有三种消息发布服务质量:至多一次,至少一次,只有一次[[[] 周维。 基于Web技术的智能家居控制系统的设计与实现[D]。西安电子科技大学,2014。]]。 

上一篇:MATLAB人脸年龄估计系统的设计
下一篇:PLC交通信号灯控制系统设计+梯形图

基于树莓派智能家居系统的设计与研究

基于树莓派开发板的智能家居控制系统设计

互联网教育”变革路径研究进展【7972字】

LiMn1-xFexPO4正极材料合成及充放电性能研究

张洁小说《无字》中的女性意识

安康汉江网讯

网络语言“XX体”研究

ASP.net+sqlserver企业设备管理系统设计与开发

老年2型糖尿病患者运动疗...

新課改下小學语文洧效阅...

我国风险投资的发展现状问题及对策分析

麦秸秆还田和沼液灌溉对...