如何在 MQTT 代理 Mosquitto 中显示已发送和已读的收据?

obj*_*ion 3 publish-subscribe messagebroker mqtt mosquitto

我想在我的消息传递平台中向用户显示已发送和已读的回执。我正在使用 Eclipse 的 Paho 库,并以 Mosquitto 作为代理。由于 Mosquitto 不存储消息,这是最好的方法/插件

  1. 显示已送达收据- 如何使用 QoS2 确认收据来执行此操作?
  2. 显示已读回执- 建议我执行此操作的方法
  3. 如何存储消息以便用户可以查看他们的聊天记录?任何有关 mysql 架构的见解都会非常有帮助。

har*_*llb 6

快速回答您的问题:

  1. 高QOS(1/2)不是端到端的交付确认,它只是经纪人和客户之间的确认。例如,发布者在 QOS 2 上发布,确认仅在发布者和代理之间进行,然后不会转发给订阅者(无论如何,订阅者可能会以不同的 QOS 进行订阅)。执行此操作的唯一方法是将单独的消息从接收端发送回发送方。此外,任何给定主题可能有多个订阅者,因此您必须考虑这将如何运作。

  2. 同样,执行此操作的唯一方法是在读取消息时发送单独的消息

  3. 您必须自己实现这一点。唯一可能有帮助的是一些代理中存在的对在数据库中存储消息的内置支持(这不是规范的一部分,因此完全有利于实现),例如 hivemq