mqtt
MQTT 是一种轻量级的发布/订阅消息传输协议,非常适合于物联网(IoT)和其他低带宽、高延迟的应用场景。
MQTT 的工作原理
MQTT网络中有三种角色:发布者(publisher)、订阅者(subscriber)和 MQTT 代理(Broker)。
发布者是客户端,可以发布(发出)消息;订阅者也是客户端,可以订阅(接收)消息;MQTT 代理(Broker)作为服务端,负责接收客户端的连接、发布和订阅请求,以及消息的路由和分发。
MQTT 使用主题(Topic)来标识消息的类型和内容。发布者将消息发布到指定的主题上,订阅者通过订阅相应的主题来接收消息。主题可以是一个或多个层次的字符串,如“home/livingroom/temperature”。
MQTT 的优点
✓ 轻量级
MQTT的协议头非常小,只有几字节,这使得它非常适合带宽有限的环境,比如嵌入式设备和低功耗设备,无线物联网系统恰恰符合这些特点。
✓ 高效
由于数据包较小,它能减少网络流量和延迟。
✓ 支持不同的 QoS(服务质量)级别
MQTT提供了三种服务质量(QoS)级别:
● QoS 0:最多一次,消息可能丢失或重复。
● QoS 1:至少一次,消息不会丢失,但可能会重复。
● QoS 2:只有一次,消息不会丢失也不会重复。
✓ 保持连接(Keep Alive)机制
MQTT 协议通过保持连接机制确保客户端与服务器之间的连接是活跃的,这样可以及时检测到连接的丢失。
✓ 断线重连
当客户端与服务器断开连接后,可以在重新连接时继续接收未处理的消息。
✓ 低功耗
MQTT协议非常适合于电池供电的设备,因为它能够在数据传输时保持低功耗状态。
✓ 发布/订阅机制
消息发布和订阅之间独立,二者之间没有逻辑关系,可以分别独立工作,有利于系统模块化设计。
✓ 灵活性/可扩展性
MQTT 可以在不同的设备和平台之间进行扩展,适用于各种规模的应用,从小型嵌入式系统到大型企业系统。
MQTT 的缺点
✗ 客户端和服务器相对复杂
MQTT 协议本身简单,是因为客户端和服务器做了比较复杂的前期底层工作,所以开发成本相对较高。
✗ 不适合大量数据处理
MQTT 的设计主要是为了处理小消息,对于大消息的处理可能会遇到性能问题。
✗ 没有消息排序机制
在 QoS 0 和 QoS 1 级别下,MQTT 不保证消息的顺序。如果消息顺序对应用很重要,可能需要额外的应用层逻辑来处理。
✗ 安全性
MQTT 本身没有内置的加密和认证机制。虽然可以通过TLS/SSL加密传输,但这需要额外配置,并且在没有加密的情况下可能存在安全风险。
无线传感器
● 内置电池或外接5V电源供电
● 多种传感器和通讯接口:I2C、UART、RS485
● 支持WIFI、4G、Lora等多种无线通讯方式
● 支持串口固件升级
【传感器 ● 单片机项目定制开发】 |