Java MQTT应用程序使用单个客户端应用程序/库与两个代理程序连接
我使用Java库(JAR)连接到MQTT代理 但是我想使用同一个库与两个代理连接。我已经实现了与两个代理连接的代码,它确实连接,但问题是,有时连接会随机断开(任意一个连接) 那么,使用一个MQTT客户机库连接两个MQTT代理的最佳方式是什么呢 已更新 我的连接代码如下所示:Java MQTT应用程序使用单个客户端应用程序/库与两个代理程序连接,java,mqtt,paho,Java,Mqtt,Paho,我使用Java库(JAR)连接到MQTT代理 但是我想使用同一个库与两个代理连接。我已经实现了与两个代理连接的代码,它确实连接,但问题是,有时连接会随机断开(任意一个连接) 那么,使用一个MQTT客户机库连接两个MQTT代理的最佳方式是什么呢 已更新 我的连接代码如下所示: import org.eclipse.paho.client.mqttv3.MqttClient; Class com.test.A { MqttClient mMqttClient; A() {
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);
}
}
连接批后我收到的错误连接失败:原因:连接丢失要解决丢失连接的问题,请尝试启用自动重新连接功能:
MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setCleanSession(true); // Create new clear session
connOpts.setAutomaticReconnect(true); // add this line
要获取详细的错误消息,请创建文件并执行以下操作:
mMqttClient = new MqttClient("broker_url_1", "Client1", persistence);
Debug debug = mMqttClient.getDebug();
debug.dumpClientDebug(); // call at different points in your code?
向我们展示您使用的代码以及代理/客户在使用时发出的任何错误消息disconnect@hardillb:请检查更新的问题。该代码并没有真正的帮助,因为两个客户端都是构造函数中的瞬态变量,所以在初始化后的某个随机时间,如果没有对它们的另一个引用,将收集它们。这个错误也没有那么有用,我会检查代理日志,看看它们是否更有用。请检查更新的代码。目前我没有看到任何需要检查如何获取这些日志的代理日志,我将在获取代理日志后尽快发布它们。MQTT Paho没有
connOpts.setAutomaticReconnect(true)代码>当然,它确实存在methodVersion不匹配问题。我使用的是0.4.0,它是最新版本。您不想在问题中提供这些信息。问题是其他问题,在深入调试后发现的。