Main Content

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

排除 MQTT 发布故障

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

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

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

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

  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. 如果您需要以高于允许的速率更新通道,请参阅 License Options

另请参阅

相关主题