gpt4 book ai didi

java - Aws 物联网消息传递

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:49:18 25 4
gpt4 key购买 nike

我正在研究 Amazon IoT 作为移动设备定期测量数据的传输机制(通常每 N 分钟一次,N 介于 2 到 32 分钟之间)。通过 MQTT,我可以利用 Amazon 的代理将完成的测量结果发布给 QoS=1 的订阅者。我们还假设我的唯一订阅者只是另一个监听通配符主题(例如 abc/#)并将发布的消息存储到本地数据库中的设备。

但现在也有可能:

  • 发布的移动设备与手机网络的连接时断时续/不良/无连接,
  • 订阅者死亡(重启、软件故障、硬件故障、维护等)

假设我使用官方 Java SDK 。在至少有一个离线的情况下,在这些时间发布的数据会发生什么情况?订阅者会在重新连接时收到它丢失的所有消息吗?

此外:这是否取决于所讨论的协议(protocol)?出于测试目的,我们使用 WebSockets,但在以后的开发/生产中,我们更喜欢 MQTT 而不是 SSL。

最佳答案

What would happen to data published during these times when at least either of them is offline? Will the subscriber get all the messages it has been missing out on upon reconnect?

是的,如果您使用具有 QoS 级别 1 或更高级别的 MQTT,因为 MQTT 使用具有主题的发布者/订阅者架构。发往具有 QoS 级别 1 和更高级别的主题的消息将由 MQTT 服务器在内存和磁盘 (Atleast mosquitto) 中保存消息,直到订阅者订阅为止。

WebSocket 不同。它没有发布者/订阅者架构。它是单 TCP 连接上的双工通信模型。 WebSocket 作为 HTTP 连接启动,它将更新为 WebSocket 连接。在 WebSocket 的情况下,应用程序有责任确保当订阅者出现连接问题时会发生什么。

关于java - Aws 物联网消息传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46601079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com