小编典典
最好的方法是构造连接逻辑,使其独立存在于一个方法中,以便可以从实例的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);
}
}
2020-11-16