Java 泛美卫生组织连接处几乎从不开火

Java 泛美卫生组织连接处几乎从不开火,java,mqtt,paho,Java,Mqtt,Paho,以下是我的代码: public void connect() throws MqttException { MqttConnectOptions options = new MqttConnectOptions(); options.setUserName("user"); options.setPassword("pass".toCharArray()); options.setAutomaticReconnect(true);

以下是我的代码:

 public void connect() throws MqttException {
        MqttConnectOptions options = new MqttConnectOptions();
        options.setUserName("user");
        options.setPassword("pass".toCharArray());
        options.setAutomaticReconnect(true);
        MqttClient client = new MqttClient("tcp://broker:8884", MqttClient.generateClientId(), handlerPahoDirs());
        client.setCallback(callback);
        client.connect(options);
        client.subscribe(this.topic);
    }
以及MqttCallback上的
connectionLost

 public void connectionLost(Throwable throwable) {
            try {
                connect();
            } catch (MqttException e) {
                //Logger
            }
        }

结果是,
connectionLost()
从未被调用过!有时我断开了internet连接,但没有调用此方法(我处于调试模式)。可能是什么?

断开连接后,您将其保留多长时间,以查看是否触发了
connectionLost
?几分钟。调用connectionLost()只会在TCP超时过期后发生。在许多系统上,超时的默认值为2小时。断开连接以查看是否触发了
connectionLost
后,您将其保留了多长时间?几分钟。调用connectionLost()只会在TCP超时过期后发生。在许多系统上,超时的默认值为2小时。