zoukankan      html  css  js  c++  java
  • Esp8266 Arduino PubSubClient连接阿里云老是返回rc=2错误的解决方案

      最近在用Esp8266 Arduino连接阿里云IOT的时候,服务器端老是返回rc=2 的错误!

    用了MQTTfx模拟连接阿里云IOT没有问题,但是把同样的ClientID,UserName和Password

    用PubSubClient去连接阿里云的时候,就会出现问题.

      所以对MQTTfx的发送过程,和PubSubclient的发送过程进行了抓包,

    可以发现两种方式连接只有第14个字节内容不同,把pubsubclient的源码捞出来,可以看到:

    buffer[length++] =((MQTT_KEEPALIVE) & 0xFF);
    这个应该是对KEEPALIVE的请求定义,
    MQTT_KEEPALIVE 宏定义为0x0F,经过这里计算后这个字节的结果仍为0x0F,而MQTTfx的为0x3C,找出不同后,把这一句的代码直接改为:
     
    buffer[length++] =0x3C;// ((MQTT_KEEPALIVE) & 0xFF);
     
    然后编译代码,上传到Esp8266,果然很快就连接上阿里云了!
     
    遇到相同问题的同学不妨试下!
     
  • 相关阅读:
    大整数乘法
    Independent Components Analysis:独立成分分析
    因子分析(Factor analysis)
    EM算法原理详解
    简易解说拉格朗日对偶(Lagrange duality)
    机器学习中有关概率论知识的小结
    高斯混合和EM算法
    java
    java
    java
  • 原文地址:https://www.cnblogs.com/yeshuimaowei/p/13409205.html
Copyright © 2011-2022 走看看