MQTT是什么?
MQTT最初代表MQ Telemetry Transport,但MQTT现在不再是一个首字母缩写,它只是这个协议的名称。
什么是MQTT-SN?
MQTT-SN代表传感器网络用的MQTT。MQTT-SN专为在无线网络上工作而设计,优化用于与通常通过无线网络通信的低功耗传感器一起工作。MQTT-SN与标准MQTT的主要区别在于,MQTT-SN不需要TCP,可以使用串行通信协议,如Zigbee或Thread。其他差异包括MQTT-SN使用主题ID而不是主题名称,允许预定义主题,并为休眠客户端设备提供了保持活动功能。
MQTT与AMQP
MQTT和AMQP都是用于在系统之间发送和接收消息的异步消息协议。主要区别在于,MQTT被高度优化用于IoT用例,因此是一种更小、更简单的协议。AMQP设计用于覆盖更一般的用例,因此具有更多可用的功能,但也更复杂且效率较低。
就功能而言,AMQP在安全选项方面可以被认为胜出,因为它默认包括诸如SASL之类的功能,而在MQTT中,您需要自己添加它。AMQP还提供了在保持向后兼容性的同时扩展协议的能力,而MQTT的更改需要版本更新。AMQP提供了除MQTT的发布/订阅模式之外的几种消息模式。与之相比,MQTT的主要优势在于它更轻量级,因此更适合电池和资源受限的硬件。MQTT还消耗更少的带宽,适用于不稳定的网络。简而言之,MQTT和AMQP之间的主要区别在于AMQP是一种通用消息协议,而MQTT是从头开始设计的一种专门的协议,以适应特定的用例。您是否应该使用MQTT还是AMQP将取决于哪种协议符合项目的要求。
MQTT与RabbitMQ
RabbitMQ是一个开源的消息代理,而MQTT是一种轻量级的发布/订阅网络协议,专为物联网环境中的机器对机器通信而设计。RabbitMQ最初是专为与AMQP一起使用而设计的,但通过插件添加了对MQTT的协议支持,以及其他几种协议,如STOMP和HTTP。因此,RabbitMQ可以用作提供故障转移和群集化等出色功能的通用消息代理,而传递消息所使用的协议可以根据您的用例进行更改。
MQTT与HTTP
HTTP是一种主要用于互联网应用的请求/响应协议。HTTP可以用于IoT用例,但并不是为此而设计。它在处理不稳定连接和处理大量连接设备的IoT环境中传递数据方面存在许多与消息大小和效率相关的缺点。
MQTT与COAP
CoAP类似于HTTP,采用二进制格式的请求/响应模型,以使其更紧凑。MQTT使用发布/订阅模型进行通信。CoAP与MQTT之间最大的区别在于,MQTT侧重于成为一种多对多通信协议,通过代理将消息传递给许多客户端设备,而CoAP主要用于从客户端到服务器的一对一通信。可以将MQTT视为更适用于事件驱动应用程序,而CoAP最适合用于状态传输。
MQTT与Zigbee
Zigbee与MQTT的主要区别在于,Zigbee是一种物理数据层协议,而MQTT是一种应用层协议。Zigbee专注于数据在设备之间实际传输的方式,旨在用作比蓝牙或WiFi等协议更简单的网状网络设备的替代方案。在许多情况下,Zigbee被用作最终将数据转换为MQTT的网关协议,以便将数据传送到云端。
MQTT与Thread
Thread是另一种旨在用于低功耗和低延迟应用的协议,在许多情况下与Zigbee非常相似。因此,将MQTT用于应用层通信,而Thread用于数据传输的下一级。
MQTT通过WebSockets
一些MQTT代理支持WebSockets,允许您使用JavaScript从Web浏览器连接到MQTT代理。
MQTT 和 Node-Red
如果您不想编程,那么Node-Red是一个基于 Flow 的工具,可以轻松创建 MQTT 项目。
什么是OASIS?
OASIS(结构化信息标准推进组织)是负责开发和维护MQTT规范以及许多其他项目的联盟。OASIS成立于1993年,是一个专注于一种名为SGML的标记语言的贸易协会。随着时间的推移,OASIS扩大了范围,现在维护了AMQP、MQTT、SAML和Legal XML等协议。OASIS的成员包括Oracle、Red Hat、通用汽车、IBM、微软、美国律师协会等众多组织。
回复