Client Identifier
ClientId 用户标识一个连接到服务器的 MQTT 客户端。
每个连接到服务器的 MQTT Client 必须设置一个唯一的 ClientId。 这个 ClientId 被用于标识可能已经存在于服务器端的 Session 状态。
ClientId 是一个 1-23个字节的 UTF8 编码的字符串。这个字符串中只能包含以下字符:
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
服务器也可以支持长度大于 23 的 ClientId,也可以支持在 ClientId 中包含其他的字符。
服务器端也可以支持 ClientId 是空字符串的情况。但是这种情况应该被特殊处理,服务器需要为这个 ClientId 生成一个唯一的不为空的 ClientId,然后像处理 ClientId 不为空的情况一下来处理当前 CONNECT 包。
如果ClientId 是空,那么 Clean Session必须为 1。