MQTT协议简介
这篇文章概述了我们计划在博客中介绍的内容,向您简要介绍了MQTT,并提供了有关该协议的一些有趣的背景材料。
简介MQTT
MQTT是客户端服务器发布/订阅消息传递协议。它重量轻,开放,简单并且设计得易于实施。这些特性使其非常适合在许多情况下使用,包括受约束的环境,例如用于机器对机器(M2M)和物联网(IoT)上下文中的通信,这些环境中需要很小的代码占用空间和/或网络带宽非常宝贵。
MQTT规范的摘要很好地描述了MQTT的全部含义。它是一种非常轻便的二进制协议,并且由于其最小的数据包开销,与HTTP之类的协议相比,MQTT 在通过网络传输数据时表现出众。该协议的另一个重要方面是MQTT在客户端非常容易实现。易于使用是MQTT开发中的一个关键问题,使其非常适合当今资源有限的受限设备。
MQTT要点:为什么,什么以及什么不是:
首先,我们将探讨MQTT 的基本概念(发布/订阅,客户端/经纪人)和基本功能(连接,发布,订阅)。然后,我们将看看特点:服务质量,保留的消息,持续会话,遗嘱,保持活动和 更多。
一点历史
MQTT协议由Andy Stanford-Clark(IBM)和Arlen Nipper(Arcom,现为Cirrus Link)于1999年发明。他们需要一种协议,以最大程度地减少电池损耗和最小带宽,以通过卫星与石油管道连接。两位发明人为将来的协议指定了几个要求:
- 实施简单
- 服务质量数据传递
- 轻量级和带宽高效
- 不可知数据
- 持续的会议意识
这些目标仍然是MQTT的核心。但是,该协议的主要重点已经从专有的嵌入式系统变为开放的物联网(IoT)用例。焦点的转移使人们对MQTT的首字母缩写感到困惑。在简短的回答是,MQTT不再被视为一个缩写。MQTT只是协议的名称。
更长的答案是,前者的缩写代表MQ Telemetry Transport。
“ MQ”是指MQ系列,这是IBM为支持MQ遥测传输而开发的产品。当Andy和Arlen在1999年创建协议时,他们以IBM产品的名字命名。许多来源错误地将MQTT标记为消息队列协议。那明显是错的。MQTT并不是传统的消息排队解决方案(尽管在某些情况下可以对消息进行排队,但我们将在后续文章中对此进行详细讨论)。在接下来的十年中,IBM内部使用了该协议,直到他们于2010年发布了MQTT 3.1作为免版税版本为止。从那时起,我们欢迎每个人实施和使用该协议。
我们在2012年结识了MQTT,并在同一年构建了HiveMQ的第一个版本。2013年,我们向公众发布了HiveMQ。随着协议规范的发布,我们为Eclipse Foundation的新成立的Paho项目贡献了客户实现。这些事件对于该协议绝对是一件大事,因为如果没有支持性的生态系统,几乎没有机会被广泛采用。
OASIS标准和当前版本
首次发布大约三年后,宣布将在OASIS的领导下对MQTT进行标准化,这是一个开放组织,旨在推进标准。AMQP,SAML和DocBook只是先前发布的OASIS标准中的一些。标准化过程耗时约1年。2014年10月29日,MQTT成为正式批准的OASIS标准。MQTT 3.1.1是该协议的最新版本。从3.1到3.1.1的次要版本更改显示对先前版本进行的更改很少。
转载:https://blog.csdn.net/gf280797513/article/details/106467835