Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未授权连接(5)-MQTT谷歌云物联网_Java_Google Cloud Platform_Mqtt - Fatal编程技术网

Java 未授权连接(5)-MQTT谷歌云物联网

Java 未授权连接(5)-MQTT谷歌云物联网,java,google-cloud-platform,mqtt,Java,Google Cloud Platform,Mqtt,我尝试连接到谷歌云物联网MQTT Brocker。在Java客户机中,我得到未授权连接(5) 设备id和其他详细信息正确。在云iot中为设备设置的公钥 使用以下回购协议的示例代码。 要检查的几件事: 1) 您确定SSL密钥的格式与您注册的内容匹配吗?RS256与带X509的RS256等 2) 您是否在mqtt客户机上设置了TLS并获取了Google根证书 2a)>=TLS 1.2 3) 验证JWT是否具有正确的“aud”值(项目id,而非项目名称),以及是否具有适当的问题和到期时间?另一个要查看

我尝试连接到谷歌云物联网MQTT Brocker。在Java客户机中,我得到未授权连接(5)

设备id和其他详细信息正确。在云iot中为设备设置的公钥

使用以下回购协议的示例代码。

要检查的几件事:

1) 您确定SSL密钥的格式与您注册的内容匹配吗?RS256与带X509的RS256等

2) 您是否在mqtt客户机上设置了TLS并获取了Google根证书

2a)>=TLS 1.2


3) 验证JWT是否具有正确的“aud”值(项目id,而非项目名称),以及是否具有适当的问题和到期时间?

另一个要查看的点是配置的GCP IoT核心云区域

这方面也有类似的问题。我将GCP IoT核心云区域配置为“asia-east1”,而在客户端应用程序端,其默认云区域为“us-central1”

如果云区域配置不正确,python/NodeJS IoT核心示例(mqtt、http、end2end)将返回以下错误:

Creating JWT using RS256 from private key file rsa_private.pem
Publishing message 1/100: 'test/test_1-payload-1'
('on_connect', 'Connection Refused: not authorised.')
('on_disconnect', '5: The connection was refused.')
要解决这个问题,只需将正确的cloud region参数传递给命令
--cloud\u region=asia-east1

例如:

python cloudiot_mqtt_example.py --project_id=project_id --registry_id=registry_id --device_id=device_id --private_key_file=rsa_private.pem --algorithm=RS256 --cloud_region=asia-east1

你能详细说明你的答案吗。。那会更有帮助。