Outgoing messages with QoS>0 are no longer retried after a timeout.

This change in behaviour can be justified by considering when the
timeout may have occurred.

* If a connection is unreliable and has dropped, but without one end
  noticing, the messages will be retried on reconnection. Sending
  additional PUBLISH or PUBREL would not have changed anything.

* If a client is overloaded/unable to respond/has a slow connection then
  sending additional PUBLISH or PUBREL would not help the client catch
  up. Once the backlog has cleared the client will respond. If it is not
  able to catch up, sending additional duplicates would not help either.
This commit is contained in:
Roger A. Light
2015-05-24 11:59:53 +01:00
parent 4195fde70b
commit cdbe62c2bb
32 changed files with 49 additions and 797 deletions
+1 -7
View File
@@ -41,9 +41,6 @@ all : 01 02 03 04 08 09
03-publish-qos0-no-payload.test : 03-publish-qos0-no-payload.cpp
$(CXX) $< -o $@ $(CFLAGS) $(LIBS)
03-publish-c2b-qos1-timeout.test : 03-publish-c2b-qos1-timeout.cpp
$(CXX) $< -o $@ $(CFLAGS) $(LIBS)
03-publish-c2b-qos1-disconnect.test : 03-publish-c2b-qos1-disconnect.cpp
$(CXX) $< -o $@ $(CFLAGS) $(LIBS)
@@ -53,9 +50,6 @@ all : 01 02 03 04 08 09
03-publish-c2b-qos2-disconnect.test : 03-publish-c2b-qos2-disconnect.cpp
$(CXX) $< -o $@ $(CFLAGS) $(LIBS)
03-publish-c2b-qos2-timeout.test : 03-publish-c2b-qos2-timeout.cpp
$(CXX) $< -o $@ $(CFLAGS) $(LIBS)
03-publish-b2c-qos1.test : 03-publish-b2c-qos1.cpp
$(CXX) $< -o $@ $(CFLAGS) $(LIBS)
@@ -90,7 +84,7 @@ all : 01 02 03 04 08 09
02 : 02-subscribe-qos0.test 02-subscribe-qos1.test 02-subscribe-qos2.test 02-unsubscribe.test
03 : 03-publish-qos0.test 03-publish-qos0-no-payload.test 03-publish-c2b-qos1-timeout.test 03-publish-c2b-qos1-disconnect.test 03-publish-c2b-qos2.test 03-publish-c2b-qos2-timeout.test 03-publish-c2b-qos2-disconnect.test 03-publish-b2c-qos1.test 03-publish-b2c-qos2.test
03 : 03-publish-qos0.test 03-publish-qos0-no-payload.test 03-publish-c2b-qos1-disconnect.test 03-publish-c2b-qos2.test 03-publish-c2b-qos2-disconnect.test 03-publish-b2c-qos1.test 03-publish-b2c-qos2.test
04 : 04-retain-qos0.test