Подпишите несколько тем в другом текстовом представлении - PullRequest
0 голосов
/ 09 ноября 2018

Я следую этому руководству, чтобы создать свой проект с использованием протокола MQTT:

https://wildanmsyah.wordpress.com/2017/05/11/mqtt-android-client-tutorial/

Но я хочу знать, как я могу подписаться на разные сообщения из разных тем в других текстовых представлениях. Например:

message1 из темы1 в textview1, сообщение2 из темы2 в текстовое представление2, сообщение3 из темы3 в текстовое представление3 ... Я хочу создать другое текстовое представление с разными сообщениями из разных тем.

Спасибо за все! =)

В моем MQTTHelper.java:

private void subscribeToTopic() {
    try {
        mqttAndroidClient.subscribe(subscriptionTopic, 0, null, new IMqttActionListener() {
            @Override
            public void onSuccess(IMqttToken asyncActionToken) {

            }

            @Override
            public void onFailure(IMqttToken asyncActionToken, Throwable exception) {

            }
        });


    }

    catch (MqttException ex) {
        System.err.println("Exception whilst subscribing");
        ex.printStackTrace();
    }

    try {
        mqttAndroidClient.subscribe(subscriptionTopic2, 0, null, new IMqttActionListener() {
            @Override
            public void onSuccess(IMqttToken asyncActionToken) {

            }

            @Override
            public void onFailure(IMqttToken asyncActionToken, Throwable exception) {

            }
        });


    }

    catch (MqttException ex) {
        System.err.println("Exception whilst subscribing");
        ex.printStackTrace();
    }

}

В моей основной деятельности:

 private  void startMqtt(){

    mqttHelper = new MQTTHelper(getApplicationContext());
    mqttHelper.setCallback(new MqttCallback() {
        @Override
        public void connectionLost(Throwable cause) {

        }

        @Override
        public void messageArrived(String topic, MqttMessage message) throws Exception {
        textReceive.setText(message.toString());
        }



        @Override
        public void deliveryComplete(IMqttDeliveryToken token) {

        }
    });


    mqttHelper2 = new MQTTHelper(getApplicationContext());
    mqttHelper2.setCallback(new MqttCallback() {
        @Override
        public void connectionLost(Throwable cause) {

        }

        @Override
        public void messageArrived(String topic, MqttMessage message) throws Exception {
        textReceive2.setText(message.toString());
        }

        @Override
        public void deliveryComplete(IMqttDeliveryToken token) {

        }
    });


}
...