具有多个QOS 2订户的MQTT QOS 2

具有多个QOS 2订户的MQTT QOS 2,mqtt,qos,Mqtt,Qos,我在我的项目中使用MQTT V5,我的业务需求如下: “出版商应收到订阅者的确认函,确认他们已成功收到出版商的消息” 请注意,这与MQTT V5中引入的MQTT请求/响应模式完全不同。我的出版者不需要一个包含数据的传统的适当响应。我的发布者只需要一个回执确认就可以知道订阅者收到了它的消息。就是这样,通讯包越轻,对我来说就越好 我读了以下文章: 其中包括QoS 2的以下序列图: 如图所示,当只有一个订户时,我完全理解确认顺序 我的问题是: 如果发布者的主题有多个订阅服务器,则所有订阅服务器都具

我在我的项目中使用MQTT V5,我的业务需求如下:

“出版商应收到订阅者的确认函,确认他们已成功收到出版商的消息”

请注意,这与MQTT V5中引入的MQTT请求/响应模式完全不同。我的出版者不需要一个包含数据的传统的适当响应。我的发布者只需要一个回执确认就可以知道订阅者收到了它的消息。就是这样,通讯包越轻,对我来说就越好

我读了以下文章:

其中包括QoS 2的以下序列图:

如图所示,当只有一个订户时,我完全理解确认顺序

我的问题是:

如果发布者的主题有多个订阅服务器,则所有订阅服务器都具有QoS 2订阅:

1-我的发布者是否会为每个订阅者接收一个PUBCOMP确认?换句话说,我的发布者将从代理接收多个PUBCOMP确认

2-或者代理是否仅在成功接收到来自所有订阅者的PUBCOMP确认后才向我的发布者发送一条PUBCOMP消息?换句话说,代理是否仅在成功地将消息传递给所有订阅者之后才向我的发布者发送一个PUBCOMP ack


提前感谢您对这个问题的关注。

高QOS一次只在一个客户端和代理之间,而不是端到端交付

如果有一个离线客户端对匹配主题进行了持久订阅,那么该关系图就会崩溃。如果给定的图表是这种情况,那么客户机将不会收到PUBCOMP,直到该客户机重新联机(这可能永远不会)。这也意味着它永远不会发布另一条消息,因为在QOS2,一次只能有一条消息在传输中

那个图表不可能是正确的。(它还让代理在消息从发布客户端交付之前存储消息)。它也不会处理订阅客户端在QOS0或QOS1订阅时发生的情况