如何使用MqttClient的取消阻塞方法

如何使用MqttClient的取消阻塞方法,mqtt,paho,Mqtt,Paho,当我尝试使用下面的代码连接到mosquitto代理时,正如您所知,连接到代理可能需要几秒钟/分钟,在按下按钮进行连接期间,按钮将保持按下状态,直到连接建立,当连接建立时,按钮将释放回其正常状态。据我所知,使用pahojavaapi连接客户端有两种方法,阻塞方法和解除阻塞方法。我的问题是,如何使用解锁方法?下面是我使用阻塞方法的尝试 代码_1: //mqttFactory public final class MQTTClientFactory { public static MqttClien

当我尝试使用下面的代码连接到
mosquitto
代理时,正如您所知,连接到代理可能需要几秒钟/分钟,在按下按钮进行连接期间,按钮将保持按下状态,直到连接建立,当连接建立时,按钮将释放回其正常状态。据我所知,使用
pahojavaapi
连接客户端有两种方法,
阻塞方法
解除阻塞方法
。我的问题是,如何使用
解锁方法
?下面是我使用阻塞方法的尝试

代码_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.");
                }
            }
        }

什么按钮?建立连接几乎是瞬间的事

mqtt有异步版本。为此编写示例代码。如果要使同步无阻塞。你可以在另一个线程中启动它