Skip to content

延迟消息 ​

1. 延迟消息 ​

​ 当客户端使用特殊主题前缀 $delayed/{DelayInteval} 发布消息时,将触发延迟发布功能,可以实现按照用户配置的时间间隔延迟发布消息。

延迟发布主题的具体格式如下:

  $delayed/{DelayInterval}/{TopicName}
  • $delayed:使用 $delay 作为主题前缀的消息都将被视为需要延迟发布的消息。延迟间隔由下一主题层级中的内容决定。
  • {DelayInterval}:指定该 MQTT 消息延迟发布的时间间隔,单位是秒,允许的最大间隔是 4294967 秒。如果 {DelayInterval} 无法被解析为一个整型数字,将丢弃该消息,客户端不会收到任何信息。
  • {TopicName}:MQTT 消息的主题名称。

例如:

  • $delayed/15/property/post:15 秒后将 MQTT 消息发布到主题 property/post。
  • $delayed/60/a/b:1 分钟后将 MQTT 消息发布到 a/b。
  • $delayed/3600/$SYS/topic:1 小时后将 MQTT 消息发布到 $SYS/topic。

下面是延迟消息列表 ​

消息 Id(Message Id)

主题(Topic)

QoS(Quality of Service,服务质量)

节点(Node)

客户端 Id(Client Id)

发布时间(Publish Time)

是否保留(Retained)

操作(Operation)

剩余延迟时间(Remaining Delay Time)

延迟时间(Delay Time)

下面是延迟消息列表页面截图

保留消息详情 ​

支持plainText,Json、Hex解析

保留消息详情页面截图

使用MQTTX模拟延迟发布 ​

启动一个MQTTX客户端

编辑一个延迟消息主题,这里延迟15秒 $delayed/15/info/post

发送延迟消息,注意:可以在新建另外一个客户端后,再发送延迟消息

使用MQTTX模拟延迟发布页面截图

新建一个客户端,订阅主题 /info/post

使用MQTTX模拟延迟发布页面截图

从上面演示可得到结果,在A节点的客户端发送的主题 $delayed/15/info/post 实际发送主题为 info/post ,B节点的客户端中订阅

了主题 info/post ,在等待15s后,B节点的客户端收到延迟方式的主题。

蜂信物联 | fastbee.cn