XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: core
    • Labels:
      None
    • Proposal:
      Hide

      Replace the sentence in 3.1.2.4 that currently says "A Keep Alive value of zero (0) has the effect of turning off the keep alive mechanism" with the following

      A Keep Alive value of zero (0) has the effect of turning off the keep alive mechanism. This means that, in this case, the Server is NOT REQUIRED to disconnect the client on the grounds of inactivity.

      Note that a Server MAY choose to disconnect a client that it determines to be inactive or non-responsive at any time, regardless of the Keep Alive value provided by that client.

      Show
      Replace the sentence in 3.1.2.4 that currently says "A Keep Alive value of zero (0) has the effect of turning off the keep alive mechanism" with the following A Keep Alive value of zero (0) has the effect of turning off the keep alive mechanism. This means that, in this case, the Server is NOT REQUIRED to disconnect the client on the grounds of inactivity. Note that a Server MAY choose to disconnect a client that it determines to be inactive or non-responsive at any time, regardless of the Keep Alive value provided by that client.

      Description

      The specification currently says "A Keep Alive value of zero (0) has the effect of turning off the keep alive mechanism", but we have no numbered normative statement assigned to that. I think we should have one - but that means we have to be more precise about what we mean by Keep Alive of 0.

      I assume we would want Server administrators to be able to terminate connections to Clients at any time, regardless of whether keep alive intervals have expired or not, so we need to make sure that the wording does not preclude this.

      Would we want a Server to be able to terminate the connection to a Keep Alive = 0 client that does not send QoS 1 or QoS 2 acknowledgements?

      Assuming the answer is no, here are some suggestions

      a) The Server MUST NOT disconnect the Client on the grounds of inactivity
      b) The Server MUST NOT disconnect a Client which fails to send control packets regularly
      c) A client can keep its Network Connection open for an indefinite period of time without sending any control packets. A Server MUST NOT disconnect a Client for doing this.

      If we want to allow the Server to enforce its own timeout on PUBACK / PUBCMP then we could use a sentence similar to the one above but either

      i) Make the MUST NOT into a SHOULD NOT
      ii) Change "Control Packet" into "PUBLISH packet"

        Attachments

          Activity

            People

            • Assignee:
              Andrew_Banks Andrew Banks
              Reporter:
              PeterNiblett Peter Niblett
            • Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: