浏览 716
原文链接:概念回顾:MQTT?
转载来源:NGINX 开源社区
NGINX 唯一中文官方社区 ,尽在 nginx.org.cn
消息队列遥测传输 (MQTT) 是一种常用的轻量级“发布-订阅”消息协议,非常适合通过互联网连接物联网 (IoT) 或机器对机器 (M2M) 设备和应用。MQTT 可在低带宽或低功耗环境中高效运行,因此是有着众多远程客户端应用的理想之选,适用于多个行业,包括消费类电子产品、汽车、运输、制造及医疗行业。
通过 MQTT 连接的设备或应用被称为“客户端(client)”。这些客户端发布和(或)订阅有关某一特定主题或多个主题的消息。已订阅的客户端会收到围绕该主题发布的所有消息,从而在许多设备和服务之间实现高效且支持容错的数据交换。
MQTT 架构的核心是 broker。所谓的 broker 其实是一台服务器,负责跟踪客户端(及其订阅的任何主题)、处理消息,并将这些消息路由到相应系统。
MQTT 协议的多个关键版本已被采用为标准协议。OASIS 组织负责管理协议的修订,并维护每个版本的完整规范。MQTT 的每次修订都扩展了协议特性集,因此了解您的设备和 broker 所遵循的 MQTT 版本至关重要。
MQTT 消息有多种类型,每种消息类型都包含符合规范的设备和应用必须遵循的特定格式。MQTT 协议修订的格式和消息类型各不相同。有关消息类型的完整列表,请参阅每种 MQTT 协议规范。
三种最常见的消息类型是 CONNECT、PUBLISH 和 SUBSCRIBE。每个 MQTT 消息都包含一个请求头、有效载荷和可选标志。根据消息类型,有效载荷的长度是可变的。例如,在 PUBLISH 消息中,有效载荷包含要发送给所有订阅设备的数据,数据字段的长度会直接影响消息的大小。
默认情况下,MQTT 设备以不安全的方式连接到 1883 端口,或者在启用 SSL/TLS 加密后连接到 8883 端口。
智能汽车是典型的 MQTT 示例。随着汽车制造商不断增添新功能以支持从远程诊断和车队管理到燃油支付和车载娱乐等服务,MQTT 已成为互联汽车的通用标准。
与超文本传输协议 (HTTP) 协议不同,MQTT 可以保持持久会话,即使汽车进出无信号区或其连接更换了发射塔也不例外。MQTT 还支持双向通信,便于汽车和云应用更轻松地发送和接收数据,而无需等待对方响应。
HTTP 和 MQTT 都是用于通过互联网传输数据的网络协议。下面我们来看看两者之间的差异。
MQTT 的许多特性让其成为在物联网设备(物联网中的“物”)和后端系统之间进行消息传递的理想协议。此处,我们将重点介绍以下四个特性:
MQTT 支持传输控制协议/互联网协议 (TCP/IP) 作为其底层传输协议。这一广泛使用的网络协议可确保在客户端和 broker 之间可靠地发送消息。
TCP/IP 被认为可靠高效的原因如下:
虽然 TCP/IP 是最常见的协议,但并非传输 MQTT 消息的唯一选择。MQTT 协议也可利用用户数据报协议 (UDP) 和 WebSockets。
NGINX 不仅可用于在物联网设备和基于云的系统之间路由流量(帮助管理流量并确保高效安全地传输数据),而且还能够轻松集成其他工具和协议,因此是安全管理物联网流量的强大工具。
NGINX 能够以多种方式用于物联网部署,其中包括:
NGINX 唯一中文官方社区 ,尽在 nginx.org.cn
按点赞数排序
按时间排序