java Aws IoT消息传递

6za6bjd0  于 2022-12-25  发布在  Java
关注(0)|答案(1)|浏览(135)

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

  • 发布移动的设备与小区网络的连接不稳定/不好/没有连接,
  • 订户死亡(重启、软件故障、硬件故障、维护等)

假设我使用的是官方的Java SDK,那么在这段时间内,如果其中至少有一个离线,发布的数据会发生什么变化?订阅者在重新连接时会得到它错过的所有消息吗?
另外:这是否取决于所讨论的协议?出于测试目的,我们使用WebSockets,但在以后的开发/生产中,我们更喜欢MQTT而不是SSL。

hrirmatl

hrirmatl1#

当它们中至少有一个处于脱机状态时,在这些时间段发布的数据会发生什么情况?订阅者在重新连接时会得到它错过的所有消息吗?
是,如果使用QoS级别为1或更高级别的MQTT,因为MQTT采用了具有主题的发布者/订阅者体系结构。在订阅者订阅之前,发往QoS级别为1或更高级别的主题的消息将由MQTT服务器保存在内存和磁盘(至少mosquitto)上。
WebSocket不同。它没有发布者/订阅者架构。它是单个TCP连接上的双工通信模型。WebSocket作为HTTP连接启动,该连接将更新为WebSocket连接。对于WebSocket,应用程序负责确保订阅者出现连接问题时会发生什么。

相关问题