我需要修复 "LWMQTT_CONNECTION_DENIED" 和 "LWMQTT_NOT_AUTHORIZED"

I need a fix for "LWMQTT_CONNECTION_DENIED" and "LWMQTT_NOT_AUTHORIZED"

我正在使用这个

https://github.com/GoogleCloudPlatform/google-cloud-iot-arduino/tree/master/examples/Esp32-lwmqtt [Github link]

使用控制台中的 Google Cloud IoT Core 的 'Update config' 功能配置默认的 ESP32 内置 LED。但是当我用必要的数据和 运行 填充所有 3 个文件时,我在 Arduino 的串行监视器中收到以下错误。具有讽刺意味的是,当我从新的邮件 ID 更改项目详细信息时,一切正常。有人可以帮我找到为什么有些项目无法使用此代码

下面是我的问题图片供您参考

只要您在 MQTT 连接属性中配置的参数不正确,就会发生这种情况。我建议您打印您的客户端 ID 字符串并验证 JWT 负载是否与 MQTT 桥期望的相匹配。

客户端 ID 应采用以下格式:

projects/<PROJECT_ID>/locations/<REGION>/registries/<REGISTRY_ID>/devices/<DEVICE_ID>

验证客户端 header 中配置的所有内容是否与 Google Cloud Console 中配置的内容匹配。

对于设备JWT,您可以从jwt.io and should ensure the aud and alg payloads are what is expected for AuthN验证。

其他一些可能导致断开连接的情况:

  • 连接到错误的主题(例如错误的设备 ID)
  • 使用错误的 QoS 进行连接

不过这些应该不会影响您,因为您正在使用 Arduino 客户端工作。