协议介绍
MQTT(消息队列遥测传输)是一种轻量级的发布/订阅网络协议,专为受限设备和低带宽、高延迟或不可靠的网络环境设计。
协议特点
- MQTT 使用发布者和订阅者的模型。发布者发送消息到主题(Topic),订阅者订阅特定的主题来接收消息。这种模型允许消息的灵活分发。
- MQTT 协议非常轻量,适合资源受限的设备。协议本身的开销很低,最小消息头仅有 2 个字节。
- MQTT 客户端通过与服务器(Broker)保持长连接来减少连接的建立和断开。通过“心跳包”(Keep Alive)机制,客户端定期向服务器发送心跳信号以维持连接。
- MQTT 提供了三种服务质量等级,用于确保消息传递的可靠性:
- QoS 0:最多一次(At most once),消息可能丢失。
- QoS 1:至少一次(At least once),消息可能重复。
- QoS 2:只有一次(Exactly once),消息确保只传递一次。
- 客户端可以请求持久会话,这意味着当客户端断开连接后,服务器会保存客户端的订阅信息和未处理的消息,等客户端重新连接时再继续发送。
- 客户端可以在连接时指定遗嘱消息,如果客户端意外断开连接,服务器会将遗嘱消息发布到指定的主题。