eclipse / paho.mqtt.java

Eclipse Paho Java MQTT client library. Paho is an Eclipse IoT project.
https://eclipse.org/paho
Other
2.12k stars 884 forks source link

Manual Ack confirmation cannot meet expectations #1023

Open mpv945 opened 10 months ago

mpv945 commented 10 months ago

"I tried to set manual Ack in the MQTT client (Client.setManualAcks), and set the callback function deliveryComplete before publish handling to process the ack confirmation messages. Before subscribing to subscribe("test/#", 2), I also set the Callback function, messageArrived to receive data, and let the thread wait 30 seconds, manually confirm ack (Client.messageArrivedComplete(mqttMessage.getId(), 1);). However, in my final test, when the publishing is completed and the receiving end finishes printing the data, deliveryComplete has received the completion confirmation."

In summary, you:

Enabled manual ack in MQTT client using setManualAcks() Set callback deliveryComplete to handle ACKs Set callback messageArrived to receive data Wait 30 seconds in messageArrived before manually acking But observed that deliveryComplete gets called immediately after data is printed, not waiting 30 seconds. Please let me know if you need any clarification or have additional questions!

freyssin commented 9 months ago

This issue appears to correlate with this precedent (#994) which included a fix (#995).

whizyrel commented 2 months ago

Hello guys, great job here but this issue is still persistent with v5 1.2.5. I have read #994, and #1023, it does not happen to have a fix. I have submitted this issue #1054.