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

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

"subscription to UserName/feeds/Topic failed: not available"

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

    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 в качестве брокера. TopicName — это что-то вроде UserName/feeds/Topic, а Qos — это 0

убедитесь, что вы уже подключились к Брокеру

Xiaohong Yuan 01.03.2019 03:23

@BryanYuan, я проверяю соединение в 3-й строке, а затем пытаюсь подписаться.

Hadi Mohammadi 01.03.2019 19:32
0
2
77
1

Ответы 1

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

Другие вопросы по теме