浊以静之徐清,安以动之徐生

0%

MQTT

1.MQTT协议初学者指南

  1. mqtt是啥?

  2. MQTT是一种轻量级的发布/订阅消息传递协议,设计用于低带宽环境中的M2M(机器对机器)遥测。

  3. 它是由Andy Stanford-Clark(IBM)和Arlen Nipper在1999年设计的,用于通过卫星连接石油管道遥测系统。

  4. 尽管它最初是专有协议,但在2010年免费发布,并在2014年成为OASIS标准。

  5. MQTT代表MQ遥测传输,但以前称为消息队列遥测传输。

  6. MQTT正在迅速成为IOT(物联网)部署的主要协议之一。

    2.MQTT版本

  • MQTT有两种不同的变体和几种版本。

  • MQTT v3.1.0 –

  • MQTT v3.1.1 –常用

  • MQTT v5 –当前受限使用

  • MQTT-SN –稍后请参阅注释

  • 最初的MQT T是在1999年设计的,已经使用了很多年,并且设计用于TCP / IP网络。

3. MQTTv3.1.1是常用版本##

  • v3.10和3.1.1之间几乎没有什么区别。这是Github页面,详细介绍了主要区别

  • 这是实际的规范MQTT V3.1,这是MQTT协议数据包结构的更详细概述。

  • 最新的MQTT版本(v5)已获得批准(2018年1月)。您可以在此处下载规范。

  • 如果您想知道4发生了什么,请在此处查看。

  • 有关更多信息,请参见MQTT v 5.0新功能概述。

  • 这是Github页面,详细介绍了MQTT v3.1.1和MQTT v5之间的主要区别。

4.MQTT版本5支持说明:

从1.6版开始,除MQTT v3.11之外,mosquitto代理还支持MQTT v5。

您可以继续将旧版本的3.11客户端与最新的代理一起使用。

当前,对v5的客户端支持有限。稍后再见。

5.MQTT-SN注释

  • MQTT-SN在2013年左右被指定,旨在通过UDP,ZigBee和其他传输进行工作。

  • MQTT-SN当前似乎并不流行。并且规范已经好几年没有变化了,但是我希望随着IOT部署的开始而变化。请参阅MQTT-SN工作说明。有关MQTT-SN的更多详细信息。

6.MQTT客户

因为MQTT客户端没有电子邮件地址,电话号码等地址,所以您无需像大多数邮件系统那样为客户端分配地址。

对于MQTTv3.1.1,有来自几乎所有编程语言的客户端软件,以及来自Eclipse Paho项目的主要操作系统Linux,Windows和Mac 。

  • Paho Python客户端。
  • Node.js MQTT客户端入门指南
    对于MQTTv5.0,Eclipse对客户端软件的支持有限,目前只有C客户端可用。这是客户比较表和下载页面的链接。

7.MQTT代理或服务器

注意:原始术语是“ 代理”,但现在已标准化为“ 服务器”。Ÿ欧将看到使用这两个词。

有许多MQTT代理可用于测试和实际应用。

Mosquitto是在Windows和Linux上运行的免费开源MQTT代理。

如果您不想安装和管理自己的代理,则可以使用来自IBM,Microsoft(Azure)等云服务提供商的基于云的代理

Eclipse有一个免费的公共MQTT代理和COAP服务器,您也可以将其用于测试。地址是iot.eclipse.org,端口是1883或8883(SSL)。

有关托管选项的列表,请参见MQTT代理和服务器文章。以及Mosquitto页面,以获取有关mosquitto经纪人的更多详细信息

8.通过WebSocket的MQTT

  • Websockets允许您直接将MQTT数据接收到Web浏览器中。

  • 这很重要,因为Web浏览器可能会成为显示MQTT数据的DE-facto界面。

  • Javascript MQTT Client提供了对Web浏览器的MQTT websocket支持。

9.MQTT安全性

MQTT支持各种身份验证和数据安全性机制。

重要的是要注意,这些安全性机制是在MQTT代理上配置的,并且由客户端来决定是否遵守适当的机制。

请参阅MQTT安全性机制简介

10.MQTT课程

MQTT 3.1.1逐步指南– MQTT初学者基础知识