gpt4 book ai didi

rabbitmq - 如何使用 MQTT Paho 订阅 RabbitMQ 队列

转载 作者:行者123 更新时间:2023-12-04 22:45:43 25 4
gpt4 key购买 nike

我正在尝试从我的 Android 应用程序连接到一个名为“消息”的队列。

生产者(AMQP 协议(protocol)下的一个 Web 服务)已经连接,可以通过 RabbitMQ 管理面板查看。

要从我的 Android 设备连接,我正在这样编码。

private void connect() throws Exception {

this.sampleClient = new MqttClient(this.broker, this.clientId);

MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setUserName("user");
connOpts.setPassword("user".toCharArray());
/*connOpts.setConnectionTimeout(60 * 10);
connOpts.setKeepAliveInterval(60 * 5);*/
connOpts.setCleanSession(true);

this.sampleClient.connect(connOpts);

this.sampleClient.setCallback(this);

this.sampleClient.subscribe("messages");

if(!this.sampleClient.isConnected()){

System.out.println("Not Connected");
return;
}

System.out.println("Connected");
}

我尝试过使用“amq.topic”、“amq.topic.*”、“amq.topic.messages”等...但是当我查看 RabbitMQ 队列部分时,“消息”有 0 个消费者,并且已经自动设置一个名为“mqtt-subscription-Sampleqos1”的新队列。

发生了什么?如何订阅“消息”队列?

最佳答案

这个问题有两点很重要。

根据 RabbitMQ MQTT 文档:http://www.rabbitmq.com/mqtt.html

首先,每个队列都自动绑定(bind)到 amq.topic 通过 mqtt-plugin 进行交换。

其次,每个订阅者都有自己的队列,如下所示, mqtt-订阅-{cliend_id}{qosX} (其中 X 是订阅的 qos 级别)

因此,生产者必须将消息发布到“amq.topic”交换,“amq.topic..”路由键,接收者必须订阅“amq.topic..”路由键。

关于rabbitmq - 如何使用 MQTT Paho 订阅 RabbitMQ 队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27228957/

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