Como usar o método de desbloqueio do MqttClient

Quando tento o código abaixo para conectar-me aomosquitto o broker, como você sabe, a conexão com o broker pode levar alguns segundos / minutos e, durante esse período, quando o botão foi pressionado para conectar, ele permanece pressionado até a conexão ser estabelecida e quando a conexão estabeleceu o botão liberado de volta ao seu estado normal. Até onde eu sei, existem duas maneiras de conectar um cliente usandopaho java API, ablocking method eunblocking method. minha pergunta é: como usar ounblocking method? beow é minha tentativa de usar o método de bloqueio

Código_1:

//mqttFactory
public final class MQTTClientFactory {

public static MqttClient newClient(String ip, int port, String clientID) throws MqttException {

    String serverURI = formURI(ip, port);
    MqttClient client = new MqttClient(serverURI, clientID).;
    return client;
}



MqttConnectOptions opts = getClientOptions();
        client = MQTTClientFactory.newClient(broker, port, clientID);

        if (client != null) {
            System.out.println("Client is not Null");
            client.setCallback(AsynchCallBack);
            if (opts != null) {
                client.connectWithResult(opts).setActionCallback(synchCallBack);
                if (client.isConnected()) {
                    System.out.println("Client CONNECTED.");
                }
            }
        }

questionAnswers(1)

yourAnswerToTheQuestion