Apache camel Apache Camel PAHO MQTT组件在断开连接后不接收消息

Apache camel Apache Camel PAHO MQTT组件在断开连接后不接收消息,apache-camel,mqtt,paho,spring-camel,Apache Camel,Mqtt,Paho,Spring Camel,我在这里看到了同样的问题,但不明白如何根据回复解决这个问题 paho端点是否可以接收脱机消息?如果可以,如何接收?这需要修改源代码吗 我使用命令行中的mosquitto_sub验证了我收到的脱机消息 以下是我的端点配置: 更多细节。似乎在断开驼峰客户端连接时,客户端首先取消订阅,这会阻止客户端在重新连接时接收脱机消息 Sep 21 06:33:40 me mosquitto.mosquitto[1290]: 1600684420: camel_test JUNK Sep 21 06:33:4

我在这里看到了同样的问题,但不明白如何根据回复解决这个问题

paho端点是否可以接收脱机消息?如果可以,如何接收?这需要修改源代码吗

我使用命令行中的mosquitto_sub验证了我收到的脱机消息

以下是我的端点配置:

更多细节。似乎在断开驼峰客户端连接时,客户端首先取消订阅,这会阻止客户端在重新连接时接收脱机消息

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_子命令行客户端不会在断开连接时取消订阅,因此能够在重新连接时接收脱机消息

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)


问题是端点配置中的语法不正确,因此cleanSession从未通过参数设置并默认为true

应该是


您使用的是什么版本的Camel?我使用的是3.4.3版。想知道这是否是由于客户在断开连接时首先取消订阅造成的?是否有解决此问题的更新版本?已验证camel 3.5.0Nevermind中存在相同的取消订阅功能…解决了问题。url语法不正确,因此从未设置cleanSession。