0
目前这在paho java库中不受支持,但我在我们的应用程序中需要此功能。例如,在应用程序启动时,我们没有网络连接,但在30秒左右后,我们建立了连接,因此我希望我的客户端能够自动连接。第一次连接 - 重新连接
我的问题是 - 什么是最好的方法来实现这一目标?我到目前为止尝试的是在连接方法出现问题时尝试重新连接。而且由于我们使用RxJava,我已经计划执行负责客户端连接的相同方法。如果我粘贴代码会更容易。
private void connect(String brokerUrl) {
try {
LOG.info("Connecting to the broker...");
mqttClient.connect(connectionOptions, "Connecting", new IMqttActionListener() {
@Override
public void onSuccess(IMqttToken asyncActionToken) {
LOG.info("Successfully conected to the broker.");
}
@Override
public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
LOG.error("Failed to connect to broker. Trying to reconnect in {} milliseconds...", connectionRetryTimeout, exception);
// try to reconnect in few seconds
Schedulers.io().scheduleDirect(() -> connect(brokerUrl), connectionRetryTimeout, TimeUnit.MILLISECONDS);
}
});
} catch (MqttException e) {
LOG.error("Connection error.", e);
}
}
发生这样的事情是什么,当网络连接可用我设法自动连接,但第二个线程创建了继续重试连接到代理。有没有人已经实施这个,或者你有任何其他建议?
那么,网络连接不可用当出现问题时,连接只是一种可能的情况。当我们尝试连接时,可能发生经纪人倒闭。 – BojanSM