The condition of publish and pubrel resending on MQTT v5
redboltz opened this issue · 1 comments
On MQTT v3.1.1, the following case publish is resent after connack is received on reconnection.
- Connect with Clean Session is false.
- publish with QoS1 or QoS2
- Disconnect before puback is received.
- Connect again with Clean Session is false.
- After connack is received resend publish.
it is ok.
I'd like to clarify the following case on MQTT v5.
- Connect with Clean Start is ture*1 and Session Expiry Interval is 2 second.
- publish with QoS1 or QoS2
- Disconnect before puback is received.
- Wait 1 second.
- Connect again with Clean Start is false.
- After connack is received resend publish or not? I think that publish is resent.
The point is *1. Clean Start true means just clean session state on connection. The in-flight publish message is not affected the Clean Start true.
- Connect with Clean Start is false and Session Expiry Interval is 2 second.
- publish with QoS1 or QoS2
- Disconnect before puback is received.
- Wait 3 second.
- Connect again with Clean Start is false.
- After connack is received resend publish or not? I think that publish is resent.
The session on the broker has been expired on the Step4, but the client resend publish. If it is not correct, the client needs to check Session Expiry Interval on the client side.
What is the correct behavior?
Hi,
this is an issue tracker for the content of the mqtt website. It isn't a support forum for the protocol itself.
I suggest using the MQTT Google Group mailing list - https://groups.google.com/forum/#!forum/mqtt