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小时。