Не получено опубликованное сообщение от брокера 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+ ваш паб.