在C中通过MQTT连接到Google IoT core时出现问题
我在这里设置了示例程序: 当我尝试运行该示例时,得到的唯一错误消息是: '连接失败,返回代码1' 然后我继续,尝试了NodeJs版本 使用相同的roots.pem、私钥和公钥,NodeJs示例可以完美地工作。我可以在谷歌控制台上查看收到的消息 有没有工具可以帮助我调试C示例的问题?或者对可能出现的问题有什么建议 谢谢,在C中通过MQTT连接到Google IoT core时出现问题,c,google-cloud-platform,mqtt,google-cloud-iot,C,Google Cloud Platform,Mqtt,Google Cloud Iot,我在这里设置了示例程序: 当我尝试运行该示例时,得到的唯一错误消息是: '连接失败,返回代码1' 然后我继续,尝试了NodeJs版本 使用相同的roots.pem、私钥和公钥,NodeJs示例可以完美地工作。我可以在谷歌控制台上查看收到的消息 有没有工具可以帮助我调试C示例的问题?或者对可能出现的问题有什么建议 谢谢, A发生这种情况的原因有很多,包括不支持的版本。提供了一些您应该首先验证的步骤,但是由于您是从NodeJS代码连接的,因此我们可以放弃一些建议。您可以使用gcloud检查错误: g
A发生这种情况的原因有很多,包括不支持的版本。提供了一些您应该首先验证的步骤,但是由于您是从NodeJS代码连接的,因此我们可以放弃一些建议。您可以使用gcloud检查错误:
gcloud iot devices describe DEVICE_ID --project=PROJECT_ID --region=REGION --registry=REGISTRY_ID
devices Descripte命令可能会显示其他错误消息,这些消息可用于帮助调试,包括验证设备的凭据是否未过期。虽然有些错误可能不会出现,但我的印象是会出现错误的用户名或密码错误 您是否更改了C:
.clientid=“projects/{your project id}/locations/{your region id}/registries/{your registry id}/devices/{your device id}”中的示例代码、
以及您必须输入信息的其他选项?是的,我已经设置了所有这些选项。C代码上的clientid与Java端的完全匹配。我刚刚在某个地方读到,默认情况下,MQTT协议可以默认为3.1,这是Google不支持的,因此我在C代码中设置了这一点:conn_opts.MQTTVersion=MQTTVersion_3_1_1,现在我得到了返回代码4,这是“连接被拒绝–用户名或密码错误”可能尝试打印JWT并在JWT.io上测试