|  | 
 
| 开发者自已使用MQTT协议开发WiFi模块连接机智云时,会遇到CONNACK返回失败的情况,那应该如何解读CONNACK消息中的返回码呢? 
 MQTT的CONNACK消息中对返回码(return code)作了如下的定义:
 
 0x00 Connection Accepted
 0x01 Connection Refused: unacceptable protocol version
 0x02 Connection Refused: identifier rejected
 0x03 Connection Refused: server unavailable
 0x04 Connection Refused: bad user name or password
 0x05 Connection Refused: not authorized
 6-255 Reserved for future use
 
 现对这一定义作一个具体的解释:
 0x00 Connection Accepted
 成功
 0x01 Connection Refused: unacceptable protocol version
 
 MQTT协议版本号不对,目前支持MQTT 3.1。一般不会有这个问题,除非使用了不对应版本的MQTT Client库。 0x02 Connection Refused: identifier rejected
 
 1. Client Identifier长度不对,允许的长度范围应是 1~23B 2. Client Identifier已被使用。一般这种情况只会出现在手机连接的情况。如是设备使用已在线的Client Identifier连接,会踢前一个session下线而不会报这个错误(设备是使用DID作为Client Ifentifier的值)。
 0x03 Connection Refused: server unavailable
 
 
 服务不可用,机智云M2M服务器不会向客户端报这个错误。0x04 Connection Refused: bad user name or password
 
 
 用户名和密码(或DID/Passcode)不正确。对设备来说,也有可能是由于设备已注销了(设备可以通过reset按键主动注销自己)。0x05 Connection Refused: not authorized
 
 
 非授权访问,机智云M2M服务器不会向客户端报这个错误。 所以,对客户端来说,应重点关注红色(0x01, 0x02, 0x04)字的错误代码。
 
 
 
 | 
 |