Не получено опубликованное сообщение от брокера MQTT в клиенте Paho

Я настроил брокера Moquette MQTT и подключил его к клиенту eclipse Paho (я назову это paho1). Подписка на in/# тема.

Я создал еще один клиент Paho (я буду называть это paho2), с другим идентификатором клиента, конечно, и опубликовал его брокеру с in/device тема.

Сначала пакет был успешно доставлен. Тем не менее, когда я отключаюсь paho2 и повторно подключиться к брокеру и отправить тот же пакет, он не доставлен paho1,

Интересно, почему это происходит? Мои настройки для клиента Paho qos = 0 (Я тоже пробовал 1 и 2).

MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setCleanSession(false);

Я смотрел на журнал брокера, и это происходит следующим образом. В случае успеха моя версия протокола печатается в журнале.

когда удалось

Не удалось

1 ответ

Решение

Я бы предложил попробовать повторить проблему с помощью различных инструментов. При работающем брокере запустите подписывающийся клиент:

mosquitto_sub -h <hostname> -t in/# -v

Затем отдельно сделайте публикацию:

mosquitto_pub -h <hostname> -t in/device -m message

Это должно вернуться очень быстро, и ваш экземпляр mosquitto_sub должен напечатать in/device message, Повторите публикацию, и вы должны увидеть то же самое.

Если вы не видите повторяющееся сообщение, проблема с брокером. Если бы тогда попытался использовать, например, Mosquitto в качестве посредника и повторить с вашим кодом.

Если вы видите повторяющееся сообщение с использованием mosquitto_pub / sub, ваш код почему-то виноват. Вы можете продолжать пробовать разные варианты, пока не поймете, в чем проблема - например, используйте mosquitto_pub+ ваш саб, mosquitto_sub+ ваш паб.

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