连接阿里云失败MQTT connect failed, error code:2

问题描述

使用ESP8266 Node MCU Arduino模式烧写程序,串口调试报错

MQTT connect failed, error code:2

问题解决

我查阅了很多资料,大家可以参考一下这一个讨论

解决方案

我查阅了<PubSubClient.h>文件

// MQTT_MAX_TRANSFER_SIZE : limit how much data is passed to the network client
//  in each write call. Needed for the Arduino Wifi Shield. Leave undefined to
//  pass the entire MQTT packet in each write call.
//#define MQTT_MAX_TRANSFER_SIZE 80

// Possible values for client.state()
#define MQTT_CONNECTION_TIMEOUT     -4
#define MQTT_CONNECTION_LOST        -3
#define MQTT_CONNECT_FAILED         -2
#define MQTT_DISCONNECTED           -1
#define MQTT_CONNECTED               0
#define MQTT_CONNECT_BAD_PROTOCOL    1
#define MQTT_CONNECT_BAD_CLIENT_ID   2
#define MQTT_CONNECT_UNAVAILABLE     3
#define MQTT_CONNECT_BAD_CREDENTIALS 4
#define MQTT_CONNECT_UNAUTHORIZED    5

然后映射到MQTT_CONNECT_BAD_CLIENT_ID 这个问题
参考

我昨天下午已经联系了阿里的工程师,最后解决了。
mqtt的密码错误这个坑我已经在第一轮就踩过了,的确解释的不清楚,已经反馈了阿里。
那边工程师给出的答复是:
工程师 97851 号 : 你好, 返回值2表示客户端标识符不正确, -4表示用户名或者密码错误。 请做以下检查:
1、先检查一下PubSubClient.h文件中定义的 MQTT_MAX_PACKET_SIZE的值, 最好要大于1024, MQTT_KEEPALIVE 大于60;
2、检查一下你的签名和接入参数的设置,可以参考文档 https://help.aliyun.com/document_detail/73742.html?spm=a2c4g.11186623.6.650.3820619bBWPshh 。
我仔细检查了一遍才发现我的c盘还有一个PubSubClient.h文件,这个文件没有改…我只修改了arduino盘下的文件。结果导致一遍遍的被阿里服务器拒绝…真是服了…
谢谢你的答复,咱们替其他同学先踩踩坑吧~
摘自jpolo的回答

修改库文件<PubSubClient.h>的内容
在这里插入图片描述
之后就成功了!
MQTT connect succeed!

猜你喜欢

转载自blog.csdn.net/qq_39592312/article/details/108931427