Java Eclipse Paho实现-自动重新连接

我正在尝试eclipse.paho在我的项目中实现连接Mqtt

Broker的目的(同时订阅和发布)。问题是,当我使用订阅功能(实现MqttCallback接口)时,我无法弄清楚如果连接断开,我该如何重新连接。MqttCallback接口具有connectionLost方法,但是对于调试导致连接丢失的调试很有用。我进行了搜索,但找不到建立自动重新连接的方法。您可以提出有关此问题的方法或文档吗?

回答:

最好的方法是构造连接逻辑,使其独立存在于一个方法中,以便可以从实例的connectionLost回调中再次调用它MqttCallback

connectionLost方法通过Throwable传递,该异常将触发断开连接,因此您可以决定根本原因以及重新连接的时间/方式的影响。

连接方法应连接并订阅您所需的主题。

像这样:

public class PubSub {

MqttClient client;

String topics[] = ["foo/#", "bar"];

MqttCallback callback = new MqttCallback() {

public void connectionLost(Throwable t) {

this.connect();

}

public void messageArrived(String topic, MqttMessage message) throws Exception {

System.out.println("topic - " + topic + ": " + new String(message.getPayload()));

}

public void deliveryComplete(IMqttDeliveryToken token) {

}

};

public static void main(String args[]) {

PubSub foo = new PubSub();

}

public PubSub(){

this.connect();

}

public void connect(){

client = new MqttClient("mqtt://localhost", "pubsub-1");

client.setCallback(callback);

client.connect();

client.subscribe(topics);

}

}

以上是 Java Eclipse Paho实现-自动重新连接 的全部内容, 来源链接: utcz.com/qa/416414.html

回到顶部