paho - can mqtt msg delivery order be guaranteed in simplified case? -
if there single broker, single publisher, single topic , clean session, in simplified case,
can msg delivery order on subscriber side guaranteed same send order on publisher side? affected qos?
section 4.6 mqtt 3.1.1 spec covers message ordering:
4.6 message ordering
a client must follow these rules when implementing protocol flows defined elsewhere in chapter:
- when re-sends publish packets, must re-send them in order in original publish packets sent (this applies qos 1 , qos 2 messages) [mqtt-4.6.0-1]
- it must send puback packets in order in corresponding publish packets received (qos 1 messages) [mqtt-4.6.0-2]
- it must send pubrec packets in order in corresponding publish packets received (qos 2 messages) [mqtt-4.6.0-3] must send pubrel packets in order in corresponding pubrec packets received (qos 2 messages) [mqtt-4.6.0-4]
a server must default treat each topic "ordered topic". may provide administrative or other mechanism allow 1 or more topics treated "unordered topic" [mqtt-4.6.0-5].
when server processes message has been published ordered topic, must follow rules listed above when delivering messages each of subscribers. in addition must send publish packets consumers (for same topic , qos) in order received given client [mqtt-4.6.0-6].
having read conclude messages (unless broker set use unordered topics) sent in order, if high qos message not acknowledged may resent result in being redelivered out of sequence.
Comments
Post a Comment