开发者社区 问答 正文

MTK2621平台移植sdk-c-3.0.1成功连接MQTT后PUB消息失败

MTK2621平台(2625+6261)参考“MTK2503/MTK6261 + Nucleus 移植示例”说明移植sdk后设备可以通过MQTT连接阿里物联网平台,在设备信息页面可以看到设备在线状态,但连接成功后PUB消息一直不成功,会返回错误信息"MQTTPublish is error, rc = -14","mqtt client state is error,state = 3"即设备连接已断开,请问这个可能是什么原因?希望大家指导下,谢谢,部分log如下:
MOD_NIL, "g_mqtt_signout.hostname: 139.196.135.135"
MOD_NIL, "MQTT init success!"
MOD_NIL, "calling TCP or TLS connect HAL for [1/3] iteration"
MOD_NIL, "soc_create: 1
MOD_NIL, "IOT_MQTT_Construct Success"
MOD_NIL, "connect params: MQTTVersion=4, clientID=a1urEdmfoNQ.KonkaGps|timestamp=2524608000000,_v=sdk-c-3.0.1,securemode=3,signmethod=hma"
MOD_NIL, "mqtt connect success!"
MOD_NIL, "Upstream Topic: '/a1urEdmfoNQ/Gps/user/update'"
MOD_NIL, "MQTTPublish is error, rc = -14"
MOD_NIL, "IOT_MQTT_Publish failed
MOD_NIL, "failed to report firmware version"
MOD_NIL, "Aliyun connect success,start yield"
MOD_NIL, "Ali SOC_READ Event"
MOD_NIL, "ali_mqtt_yield..."
MOD_NIL, "mqtt client state is error,state = 3"
MOD_NIL, "publish failed, res=-27

展开
收起
游客4u26bcxwfjgow 2019-06-05 19:18:33 3084 分享 版权
阿里云 AI 助理回答

错误信息 "MQTTPublish is error, rc = -14" 和 "mqtt client state is error,state = 3" 指示了几个可能的问题点,这些都与MQTT连接和消息发布过程相关。根据您提供的日志信息,这里有几个可能的原因及建议:

  1. 网络连接问题:

    • 状态码-14通常意味着网络连接问题或者客户端配置不正确导致的发送失败。请检查设备的网络连接是否稳定,包括TCP或TLS连接是否成功建立且没有被意外中断。
  2. MQTT客户端状态异常:

    • 状态码3通常表示MQTT客户端已经断开连接。这可能是由于网络波动、服务器拒绝连接、超时或其他底层传输层问题导致的。需要确认在尝试发布消息前,MQTT客户端确实处于连接成功(Connected)的状态。
  3. 阿里云物联网平台配置问题:

    • 确认设备三元组(ProductKey、DeviceName、DeviceSecret)是否正确无误,并且与阿里云物联网平台上的设置完全匹配。
    • 检查设备的Topic格式是否符合阿里云的要求,从日志中看Upstream Topic: '/a1urEdmfoNQ/Gps/user/update',确保这个Topic格式是按照阿里云规定的规则设置的。
  4. SDK版本或配置问题:

    • 日志中提到的版本号 _v=sdk-c-3.0.1,请确认该版本的SDK与MTK2621平台兼容,并且所有必要的配置项都已经正确设置。有时候,旧版本的SDK可能存在已知问题,可以考虑更新到最新版本的SDK试试。
  5. 安全策略和认证问题:

    • 确保设备使用的签名方法(signmethod=hma)与阿里云平台上设置的一致,并且时间同步正确,因为一些安全验证机制依赖于精确的时间戳。
  6. 日志深入分析:

    • 如果可能,获取更详细的调试日志,特别是MQTT连接建立后的详细通信日志,这有助于定位问题所在。
  7. 资源限制或内存泄漏:

    • 虽然直接从日志中看不出来,但有时设备端的资源限制(如内存不足)也可能导致连接不稳定或发布消息失败。检查是否有内存泄漏或资源管理不当的情况。

针对这些问题,建议首先从网络稳定性、配置正确性以及SDK版本兼容性方面进行排查。如果问题依旧,可能需要联系阿里云技术支持提供更详细的日志和环境信息以便进一步分析。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答