gpt4 book ai didi

java - Java 中服务质量 = 2 的 Mqtt Pub-Sub

转载 作者:行者123 更新时间:2023-11-29 05:33:33 24 4
gpt4 key购买 nike

我对 QoS=2 设置有一些疑问。

Mqtt 发布者-订阅者正在使用 Qos=2。据我所知,通过设置 Qos=2 可以避免订阅者之间的消息重复传递。在发布者中,我设置了 Qos=2。我有两个订阅者收听相同的主题。我的代码运行正常,但两个订阅者收到相同的消息。

通过设置Qos=2 只有一个订阅者才能收到消息对吗?

如何解决这个问题?

public class PubSync {
public static void main(String[] args) {
try {
MqttClient client = new MqttClient(TCPAddress,MqttClient.generateClientId());
MqttTopic topic = client.getTopic(MYTOPIC);
MqttMessage message = new MqttMessage(msg.getBytes());
message.setQos(2);
client.connect();

MqttDeliveryToken token = topic.publish(message);
token.waitForCompletion();

client.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}

最佳答案

QOS 2 意味着每个订阅者只会收到任何给定消息的1副本。

这与 QOS 1 不同,在 QOS 1 中,订阅者可能会收到同一消息的多个副本,因为代理会确保消息已送达。

QOS 级别不会以任何方式改变多少订户将看到一条消息。

关于java - Java 中服务质量 = 2 的 Mqtt Pub-Sub,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20281293/

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