在本文中,我将解释 MQTT 的基础知识、工作原理及其优势。
1. 什么是 MQTT?
简而言之,MQTT(消息队列遥测传输)是物联网中用于向设备发送消息和从设备发送消息的轻量级消息传递协议。它通过TCP/IP网络运行。还有许多其他消息传递协议可用于物联网,但MQTT由于其简单性和易用性而迅速成为最受欢迎的协议。MQTT的最新版本是v5,但v3.1.1和v3.1仍然是最常用的。
2. MQTT 如何工作?
MQTT 通过所谓的发布/订阅模型工作。MQTT 设置有 2 个主要组件:
代理Broker:代理是一个中央集线器或服务器,负责客户端之间的所有连接并存储所有消息。
客户端:客户端是连接到代理并可以发布和接收消息的设备。
MQTT 代理就像一个无线电波,MQTT 客户端是通过该波广播和接收消息的设备。
3.那么消息传递实际上是如何工作的呢?
连接到代理的客户端可以通过主题相互通信。
主题就像一个无线电频率。当您将消息广播到特定频率时,任何收听到该频率的人都会收到该消息。在 MQTT 中,广播是"发布",调谐是"订阅"。您可以使用单词作为主题。例如:温度传感器,厨房/灯
如果我有 2 个客户端连接到代理,并且如果我想在客户端之间发送消息,我必须将消息发布到一个主题名称,即来自一个客户端的"Lights"。应该接收消息的另一个客户端必须订阅同一主题"Lights"。
4. MQTT for IoT 相对于 HTTP 和 UDP 的优势
MQTT非常轻量级。与 HTTP 相比,MQTT 中的消息大小非常小。HTTP在物联网不需要的请求和响应消息中发送的大量额外的,不必要的字段。
MQTT是可靠的。与面向连接的TCP / IP相比,UDP是一种连接较少的协议。基于UDP的协议,如MQTT-SN和CoAP,在发送消息方面更快,但它们并不可靠。
MQTT 是可扩展的。它可以缩放以处理数百万条消息。
大型云提供商使用 MQTT。AWS,Azure,OpenStack都有支持MQTT消息传递的物联网模块。
这并不意味着 MQTT 在每种情况下都是最好的。如果您必须牺牲速度的可靠性,那么基于UDP的协议(如CoAP)可能会更好。
学习了该篇,您还可继续学习我发布的《MQTT入门》一篇。