Mqtt 有可能向未来发送消息吗?

Mqtt 有可能向未来发送消息吗?,mqtt,mosquitto,hivemq,Mqtt,Mosquitto,Hivemq,是否有使用MQTT发布计划/延迟消息的最佳实践,例如,使用MOSQUITO或HiveMQ代理 用例是:告诉订户在15分钟内执行一些维护 最理想的情况是,通过发布消息“请立即执行维护”来解决用例,并在消息上标记“从现在起15分钟内交付”。否,对于订阅主题的所有已连接客户端,以及对于具有持久订阅的已断开连接的客户端,在重新连接时,会立即传递消息 如果要执行延迟消息,则必须在将消息发布到代理之前实现自己的存储转发机制。否,对于订阅主题的所有已连接客户端,以及对于具有持久订阅的已断开连接客户端,在重新连

是否有使用MQTT发布计划/延迟消息的最佳实践,例如,使用MOSQUITO或HiveMQ代理

用例是:告诉订户在15分钟内执行一些维护


最理想的情况是,通过发布消息“请立即执行维护”来解决用例,并在消息上标记“从现在起15分钟内交付”。

否,对于订阅主题的所有已连接客户端,以及对于具有持久订阅的已断开连接的客户端,在重新连接时,会立即传递消息


如果要执行延迟消息,则必须在将消息发布到代理之前实现自己的存储转发机制。

否,对于订阅主题的所有已连接客户端,以及对于具有持久订阅的已断开连接客户端,在重新连接时,会立即传递消息


如果要执行延迟消息,则必须在将消息发布到代理之前实现自己的存储转发机制。

虽然我不建议在任何高吞吐量的情况下执行此操作,但至少在HiveMQ中,您可以执行以下操作:

  • 实施一项计划
  • 调度一个可运行的,使用的是某种共享ScheduledExecutorService。Runnable通过PublishService重新发布发布
  • OnPublishReceivedCallback需要通过抛出OnPublishReceivedException来丢弃原始发布(使用false作为构造函数参数,这样就不会断开发布客户端的连接)

  • 虽然我不建议在任何具有高吞吐量的场景中执行此操作,但至少在使用HiveMQ时,您可以执行以下操作:

  • 实施一项计划
  • 调度一个可运行的,使用的是某种共享ScheduledExecutorService。Runnable通过PublishService重新发布发布
  • OnPublishReceivedCallback需要通过抛出OnPublishReceivedException来丢弃原始发布(使用false作为构造函数参数,这样就不会断开发布客户端的连接)