Reputation: 59
I do use the PAHO C client library in my application. I do subscribe topics with MQTTAsync_subscribe() and QoS set to 1. From what I understand is that 1 means, that a message is send to the client at least one time.
I disconnect the client that subscribed the topic and the client that published the topic is still sending messages to the Mosquitto broker. If I start the subscriber lets say hours later, I get all the buffered messages beginning from the last one when the subscriber was shut down. So far so good! But the problem is, that the messages arrive in the same interval as the publisher sends new messages. By doing so, you will never get the latest message queued up by the publisher.
What I expect is that the Mosquitto broker tries to send all pending messages one after the other to the client instead of sending one old message when a new one is published.
Maybe someone can help me to understand why this happens or maybe how to overcome this situation?
Upvotes: 0
Views: 913
Reputation: 59608
Queued messages should all be batch delivered when the client reconnects.
They are not queued up and delivered with the same time offset, mosquitto wouldn't even keep time of arrival to be able to do time offset delayed delivery (Time of arrival is kept for MQTT v5 messages because they can now have TTL value, but this is only used to remove expired messages from the queue, not to delay late delivery).
Upvotes: 0