gpt4 book ai didi

java - MQTT 应用程序使用单个客户端应用程序/库与两个代理连接

转载 作者:行者123 更新时间:2023-11-30 06:35:43 25 4
gpt4 key购买 nike

我正在使用MQTT Eclipse Paho用于连接到 MQTT 代理的 Java 库 (JAR)。

但我想使用同一个库与两个经纪人连接。我已经实现了与两个代理连接的代码,它确实连接了,但问题是,有时连接会随机断开(任一连接)。

那么使用一个 MQTT 客户端库连接两个 MQTT 代理的最佳方式是什么?

已更新

我的连接代码如下所示:

import org.eclipse.paho.client.mqttv3.MqttClient;
Class com.test.A
{
MqttClient mMqttClient;
A()
{
mMqttClient = new MqttClient("broker_url_1", "Client1", persistence);

// Create MQTT connection options
MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setCleanSession(true); // Create new clear session

mMqttClient.connect(connOpts);
}
}

import org.eclipse.paho.client.mqttv3.MqttClient;
Class com.test.B
{
MqttClient mMqttClient;
B()
{
mMqttClient = new MqttClient("broker_url_2", "Client2", persistence);

// Create MQTT connection options
MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setCleanSession(true); // Create new clear session

mMqttClient.connect(connOpts);
}
}

连接很多后出现错误connectionLost:原因:连接丢失

最佳答案

要解决失去连接的问题,请尝试启用自动重新连接功能:

MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setCleanSession(true); // Create new clear session
connOpts.setAutomaticReconnect(true); // add this line

要获取详细错误消息,请创建 jsr47min.properties文件和:

mMqttClient = new MqttClient("broker_url_1", "Client1", persistence);
Debug debug = mMqttClient.getDebug();
debug.dumpClientDebug(); // call at different points in your code?

关于java - MQTT 应用程序使用单个客户端应用程序/库与两个代理连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45236553/

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