qiuri2008

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

今天遇到一个MQTT的问题,MqttException: MQIsdp ClientId > 23 bytes

ClientId的长度大于23时,无法链接MQTT服务器。

经过查看协议发现:客户端标识符(Client ID)是介于1和23个字符长度,客户端到服务器的唯一标识。它必须在搜有客户端连接到一台服务器是唯一的,是在处理QoS级别1和2的消息ID中的关键。如果客户端ID包含23个字符,服务器响应CONNECT消息,通过一个CONNACK,返回码2:标识符被拒绝。

英文原版的协议中是这样描述的:

 

E文不行,好像是说开始的版本有23个字符的限制,后来的版本可以超过23字符了。

不过最新的Mosquitto只支持到了3.1.1,无奈只能改ClientId的规则,不超过23字符。

posted on 2018-06-07 20:18  江召伟  阅读(564)  评论(0编辑  收藏  举报