Details

    • Type: Improvement
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 5
    • Fix Version/s: 5, wd08
    • Component/s: core
    • Labels:
      None

      Description

      If we add a CONNACK return code of 'Try Another Server', this makes it easier for over-loaded servers to tell clients to redirect. This works in conjunction with MQTT-259, which advocates the use of DNS SRV records.

      Indeed, if we also added server-originated DISCONNECT packets with this return code, we could get clients to cleanly migrate to another server when a server is shutdown for maintenance.

      Please note, I do not favour the server also reporting which new server to connect to. There in lies the route to madness, as it means the current server has to know the state of all the others. That's intimate knowledge.

        Attachments

          Activity

          Hide
          kdot Konstantin Dotchkoff [X] (Inactive) added a comment -

          I second Ken's comment and proposal

          Show
          kdot Konstantin Dotchkoff [X] (Inactive) added a comment - I second Ken's comment and proposal
          Hide
          ken.borgendale Ken Borgendale (Inactive) added a comment -

          This was resolved at the 2016-10-13 MQTT TC with the direction to have two return codes, one for a temporary and one for a permanent redirect. The optional string to return is zero or more space separated references where each reference is of the form host:port where the :port is optional. Literal IPv6 can be done using square brackets as with a URI.

          Show
          ken.borgendale Ken Borgendale (Inactive) added a comment - This was resolved at the 2016-10-13 MQTT TC with the direction to have two return codes, one for a temporary and one for a permanent redirect. The optional string to return is zero or more space separated references where each reference is of the form host:port where the :port is optional. Literal IPv6 can be done using square brackets as with a URI.
          Hide
          ken.borgendale Ken Borgendale (Inactive) added a comment -

          While editing this support I came across another product which does a similar thing by using the semicolon as the host to port separator. This would allow a slightly simpler parse at the cost of being slightly less common with other representation of the authority. If there is any desire to do this, we could write another issue and change this.

          Show
          ken.borgendale Ken Borgendale (Inactive) added a comment - While editing this support I came across another product which does a similar thing by using the semicolon as the host to port separator. This would allow a slightly simpler parse at the cost of being slightly less common with other representation of the authority. If there is any desire to do this, we could write another issue and change this.
          Hide
          ken.borgendale Ken Borgendale (Inactive) added a comment -

          Added to wd08

          Show
          ken.borgendale Ken Borgendale (Inactive) added a comment - Added to wd08
          Hide
          ken.borgendale Ken Borgendale (Inactive) added a comment -

          Issue included in MQTTv5.0 CS01 December 25, 2017

          Show
          ken.borgendale Ken Borgendale (Inactive) added a comment - Issue included in MQTTv5.0 CS01 December 25, 2017

            People

            • Assignee:
              ken.borgendale Ken Borgendale (Inactive)
              Reporter:
              raphcohn Raphael Cohen (Inactive)
            • Watchers:
              9 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: