什么是离线消息?
- 前提:离线消息必须是Qos=1或者Qos=2的消息
场景 | 描述 |
---|
当客户端发布的消息没有客户端订阅时,那么此消息被定义为离线消息 | 无订阅的消息 |
ACK未确认的qos=1或者qos=2的消息,也会被定义为离 线消息 | ack未确认的消息 |
离线消息使用场景
当设备没有确定投递到订阅的客户端,需要自动缓存消息,待设备上线后订阅消费消息,FluxMQ支持自动存储,订阅拉取消息,并完成消息投递,保证消息可达。
离线消息存储方式
方式 | 描述 |
---|
离线存储到Redis中 | 适用于消息量较大的场景 |
离线存储到Mysql中 | 适用于小批量设备场景 |
离线存储到Postgresql中 | 适用于小批量设备场景 |
离线消息结构
下面为离线消息的报文格式,详细的报文也可以参考 [数据类型]
字段 | 解释 |
---|
id | 消息唯一标识 |
payload | MQTT 消息体 |
messageId | MQTT 消息 ID |
topic | MQTT 主题 |
qos | MQTT 消息的 QoS |
retain | MQTT 消息是否保持 |
timestamp | 事件触发时间 (单位:毫秒) |
clientId | 客户端 ID |
clientIp | 客户端的 IPAddress |
nodeIp | 事件触发所在节点 IPAddress |