Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MQTT应用程序使用单个客户端应用程序/库与两个代理程序连接_Java_Mqtt_Paho - Fatal编程技术网

Java 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() {

我使用Java库(JAR)连接到MQTT代理

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

那么,使用一个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);
    }    
}

连接批后我收到的错误连接失败:原因:连接丢失

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

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,它是最新版本。您不想在问题中提供这些信息。问题是其他问题,在深入调试后发现的。