主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

MQTT 发布故障排除

MQTT 协议提供最少的反馈,并且错误消息有限。使用这些步骤来解决连接和发布消息的问题。这些步骤都是独立的可能性,最可能出现的问题列在最前面。

  1. 确保客户端地址是 mqtt3.thingspeak.com。如果您错误地配置了客户端以连接到 ThingSpeak™ MQTT 代理,您的连接请求将被拒绝。

  2. 检查主题格式是否正确为 Publish to a Channel FeedPublish to a Channel Field Feed

  3. 确保您的 MQTT 设备凭证正确。选择 Devices > MQTT。点击 Edit 时可以看到设备配置详细信息,但如果您在创建设备时没有保存或记下密码,则可以通过点击 The regenerate button 重新生成一个新密码。

  4. 确保您的 QoS 设置为 0。某些设备的默认 QoS 不同于 0。有些客户端要求您手动更改设置。

  5. 不要将 CleanSession 标志设置为 0。如果您在 MQTT 客户端上将 CleanSession 标志设置为 0,则对 ThingSpeak MQTT 代理的任何连接请求都将被拒绝,并且 CONNACK 状态为 "0x05 Connection Refused, not authorized"

  6. 确保端口正确。请参阅 MQTT 客户端配置 以获取可接受端口的列表。

  7. 请勿在 MQTT 客户端上将 Will 标志设置为非零值。任何具有非零 Will 标志的到 ThingSpeak MQTT 代理的连接请求都将被拒绝,并且 CONNACK 状态为 "0x05 Connection Refused, not authorized"

  8. 如果您在连接 SSL 时遇到问题,请注意您的客户端可能需要额外的步骤来启用安全连接。

  9. 如果您从设备发送数据,请确保 MQTT 库的缓冲区大小足够大,可以将完整的消息发送到 ThingSpeak。如果您的设备有足够的可用内存,则缓冲区大小应至少为 1K。

  10. 如果需要以高于允许的速率更新通道,请参阅许可证选项

另请参阅

主题