Почему клиент Eclipse Paho Android MQTT не возвращает подписку?

Я не могу подписаться на тему MQTT из своего приложения для Android. Когда я вызываю функцию SubscribeToTopic, я получаю следующую ошибку

"Ошибка подписки на UserName / feeds / Topic: недоступно"

Вот код для подписки

    private void SubscribeToTopic(String TopicName, int Qos) {
    try {
        if (client.isConnected()) {
            client.subscribe(TopicName, Qos, null, new IMqttActionListener() {
                @Override
                public void onSuccess(IMqttToken asyncActionToken) {
                    Log.d("Subscribtion", "Succeed");
                }

                @Override
                public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
                    Log.d("Subscribtion", "Failed", exception);
                }
            });
        }
    }
    catch (MqttException exception)
    {
        Log.d("Subscribtion","Failed",exception);
    }
}

ПРИМЕЧАНИЕ. Я использую Eclipse Paho в качестве клиента MQTT и Adafruit IO в качестве брокера. Название темы - это что-то вроде UserName/feeds/Topic, а Qos - 0.


person Hadi Mohammadi    schedule 28.02.2019    source источник
comment
убедитесь, что вы уже подключились к брокеру   -  person Bryan Yuan    schedule 01.03.2019
comment
@BryanYuan, проверяю соединение в 3-й строке, а потом пытаюсь подписаться.   -  person Hadi Mohammadi    schedule 01.03.2019


Ответы (1)


Проведя часы, наконец нашел решение. С кодом проблем не было, я только изменил тему на публичный режим в панели управления Adafruit IO, и это сработало. Единственное, что я не могу понять, это почему можно подписаться на частную тему из библиотеки Arduino, но это не работает в Android.

person Hadi Mohammadi    schedule 03.03.2019