首页 文章

使用MQTT服务重新启动服务器

提问于
浏览
0

想象一下连接远程客户端的MQTT代理,它连续发送QoS 2数据 - 标准情况 . 客户端配置为“cleansession false” - 它们有一个队列,以便在连接失败时发送消息 .

在服务器上,本地客户端订阅主题以接收消息 .

服务器负载:

  • 启动MQTT Broker

  • 运行本地客户端

  • 连接远程客户端并从队列接收数据

如果第三点出现在第二点之前怎么办?有标准解决方案吗?如何不丢失第一条消息?

1 回答

  • 0

    假设您正在讨论代理的所有后续重新启动,而不是第一次启动系统,那么代理应该在关闭之前将客户端的持久预订状态存储到磁盘,并在重新启动时将其恢复 . 这意味着它应该为本地客户端排队消息 .

    此外,您始终可以使用防火墙来阻止远程客户端连接,直到所有本地客户端都已启动,这也将解决第一个启动问题 .

相关问题