Uploaded image for project: 'OASIS Message Queuing Telemetry Transport (MQTT) TC'
  1. OASIS Message Queuing Telemetry Transport (MQTT) TC
  2. MQTT-82

Provide a way for clean-session=1 clients to specify no client identifier

    XMLWordPrintable

    Details

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

      Edit WD12 from 647

      The ClientId MUST comprise only Unicode characters, and the length of the UTF-8 encoding must be at least zero bytes and no more than 65535 bytes.

      The server MAY restrict the ClientId it allows in terms of their lengths and the characters they contain, however the server MUST allow ClientIds which are between 1 and 23 UTF-8 encoded bytes in length, and contain only the characters "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".

      A zero-byte clientId is considered a special case and a server MUST support the following behaviour or not permit zero-byte clientIds.

      If the client supplies a zero-byte ClientId, the client MUST also set Clean Session to 1. This combination indicates that the client has no unique identifier and that the server will process the connection as if it were a unique client.

      If the client supplies a zero-byte clientId with Clean Session set to 0, the server MUST respond to the CONNECT packet with a CONNACK return code 0x02 (Identifier rejected) and then terminate the TCP connection

      If the server rejects the ClientId it MUST respond to the CONNECT packet with a CONNACK return code 0x02 (Identifier rejected) and then terminate the TCP connection

      Show
      Edit WD12 from 647 The ClientId MUST comprise only Unicode characters, and the length of the UTF-8 encoding must be at least zero bytes and no more than 65535 bytes. The server MAY restrict the ClientId it allows in terms of their lengths and the characters they contain, however the server MUST allow ClientIds which are between 1 and 23 UTF-8 encoded bytes in length, and contain only the characters "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ". A zero-byte clientId is considered a special case and a server MUST support the following behaviour or not permit zero-byte clientIds. If the client supplies a zero-byte ClientId, the client MUST also set Clean Session to 1. This combination indicates that the client has no unique identifier and that the server will process the connection as if it were a unique client. If the client supplies a zero-byte clientId with Clean Session set to 0, the server MUST respond to the CONNECT packet with a CONNACK return code 0x02 (Identifier rejected) and then terminate the TCP connection If the server rejects the ClientId it MUST respond to the CONNECT packet with a CONNACK return code 0x02 (Identifier rejected) and then terminate the TCP connection
    • Resolution:
      Hide

      Resolved in WD13

      Show
      Resolved in WD13

      Description

      Client libraries often provide a way to generate a random client identifier for situations in which the client had not been assigned a client identifier. It would be better to provide a way in the protocol to omit a client identifier in the CONNECT packet for these situations, effectively making such clients anonymous.

        Attachments

          Activity

            People

            • Assignee:
              andrew_banks Andrew Banks (Inactive)
              Reporter:
              andrew_schofield Andrew Schofield (Inactive)
            • Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: