Mqtt连接状态监听

private void mqttCallbackDemo(){
    MqttCallback callback=  new MqttCallback(){

        @Override
        public void connectionLost(Throwable cause) {
            //连接丢失
        }

        @Override
        public void messageArrived(String topic, MqttMessage message) throws Exception {
            //接收到消息
        }

        @Override
        public void deliveryComplete(IMqttDeliveryToken token) {
            // 成功发出消息
        }
    };

    MqttCallbackExtended callbackExtended = new MqttCallbackExtended() {
        @Override
        public void connectComplete(boolean reconnect, String serverURI) {
            // 连接成功
        }

        @Override
        public void connectionLost(Throwable cause) {
            //连接丢失
        }

        @Override
        public void messageArrived(String topic, MqttMessage message) throws Exception {
            //接收到消息
        }

        @Override
        public void deliveryComplete(IMqttDeliveryToken token) {
            // 成功发出消息
        }
    };

    MqttAndroidClient mMqttAndroidClient = new MqttAndroidClient(this, "serverURI", "clientId");
    // 1 这种无法接收到连接成功的回调
    mMqttAndroidClient.setCallback(callback);
    // 可以接收到连接成功的回调
    mMqttAndroidClient.setCallback(callbackExtended);
    
    // 如果需要实时监听mqtt连接状态,需要使用MqttCallbackExtended,否则只能监听到连接丢失,
    //而收不到自动连接成功的消息
}

猜你喜欢

转载自my.oschina.net/u/872141/blog/1581925