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