收藏官网首页
查看: 13281|回复: 0

关于对MQTT的CONNACK消息中对返回码的解释

3

主题

4

帖子

47

积分

新手上路

Rank: 1

积分
47
跳转到指定楼层
楼主
发表于 2015-5-31 23:44:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
免费使用STM32、APP自动代码生成工具
开发者自已使用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的错误代码。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表