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


