Я видел здесь ту же проблему, но не понимаю, как исправить эту проблему на основе ответа.
Маршруты Camel PAHO не получают офлайн-сообщения при обратном подключении
Возможно ли получение автономных сообщений на конечной точке paho, и если да, то как? Потребуется ли для этого изменение исходного кода?
Я подтвердил, что получаю офлайн-сообщения, используя mosquitto_sub из командной строки.
Вот моя конфигурация конечной точки:
<from uri="paho:JUNK?brokerUrl=tcp://localhost:1883?cleanSession=false&qos=2&clientId=camel_test" />
Еще немного подробностей. Похоже, что при отключении верблюжьего клиента клиент сначала отписывается, что не позволяет клиенту получать автономные сообщения при повторном подключении.
Sep 21 06:33:40 me mosquitto.mosquitto[1290]: 1600684420: camel_test JUNK
Sep 21 06:33:40 me mosquitto.mosquitto[1290]: 1600684420: Sending UNSUBACK to camel_test
Sep 21 06:33:40 me mosquitto.mosquitto[1290]: 1600684420: Received DISCONNECT from camel_test
Sep 21 06:33:40 me mosquitto.mosquitto[1290]: 1600684420: Client camel_test disconnected.
Клиент командной строки mosquitto_sub не отменяет подписку при отключении и поэтому может получать автономные сообщения при повторном подключении.
Sep 21 06:33:21 me mosquitto.mosquitto[1290]: 1600684400: Client ns_consumer disconnected.
Sep 21 06:42:23 me mosquitto.mosquitto[1290]: 1600684943: New client connected from ::1 as ns_consumer (p2, c0, k60).
Sep 21 06:42:23 me mosquitto.mosquitto[1290]: 1600684943: Sending CONNACK to ns_consumer (1, 0)
Sep 21 06:42:23 me mosquitto.mosquitto[1290]: 1600684943: Sending PUBLISH to ns_consumer (d0, q2, r0, m26, 'JUNK', ... (189 bytes))
Sep 21 06:42:23 me mosquitto.mosquitto[1290]: 1600684943: Received SUBSCRIBE from ns_consumer
Sep 21 06:42:23 me mosquitto.mosquitto[1290]: 1600684943: ns_consumer 2 JUNK
Sep 21 06:42:23 me mosquitto.mosquitto[1290]: 1600684943: Sending SUBACK to ns_consumer
Sep 21 06:42:23 me mosquitto.mosquitto[1290]: 1600684943: Sending PUBLISH to ns_consumer (d0, q2, r1, m27, 'JUNK', ... (189 bytes))
Sep 21 06:42:23 me mosquitto.mosquitto[1290]: 1600684943: Received PUBREC from ns_consumer (Mid: 26)
Sep 21 06:42:23 me mosquitto.mosquitto[1290]: 1600684943: Sending PUBREL to ns_consumer (m26)
Sep 21 06:42:23 me mosquitto.mosquitto[1290]: 1600684943: Received PUBREC from ns_consumer (Mid: 27)
Sep 21 06:42:23 me mosquitto.mosquitto[1290]: 1600684943: Sending PUBREL to ns_consumer (m27)
Sep 21 06:42:23 me mosquitto.mosquitto[1290]: 1600684943: Received PUBCOMP from ns_consumer (Mid: 26, RC:0)
Sep 21 06:42:23 me mosquitto.mosquitto[1290]: 1600684943: Received PUBCOMP from ns_consumer (Mid: 27, RC:0)
1 ответ
Проблема заключалась в неправильном синтаксисе в конфигурации конечной точки, поэтому cleanSession никогда не устанавливался с помощью параметра и по умолчанию имел значение true.
<from uri="paho:JUNK?brokerUrl=tcp://localhost:1883?cleanSession=false&qos=2&clientId=camel_test" />
Должно быть
<from uri="paho:JUNK?brokerUrl=tcp://localhost:1883&cleanSession=false&qos=2&clientId=camel_test" />
Похожие вопросы
Связанные вопросы
Новые вопросы
apache-camel
Apache Camel - это интегрированная среда с открытым исходным кодом, которая фокусируется на быстрой и простой интеграции систем, потребляющих или производящих данные.