0

我有与使用 paho 客户端连接到 google IoT类似的工作代码

由于我在 Spring Boot 反应式应用程序中,我想使用Hive MQTT Client,但我找不到正确的设置,我一直收到以下错误消息:

com.hivemq.client.mqtt.exceptions.ConnectionClosedException: Server closed connection without DISCONNECT.

我使用的当前代码:

    hiveClient = MqttClient.builder()
            .identifier(UUID.randomUUID().toString())
            .serverHost("mqtt.googleapis.com")
            .serverPort(443)
            .useMqttVersion3()
            .sslWithDefaultConfig()
            .simpleAuth(
                    Mqtt3SimpleAuth.builder()
                            .username("unused")
                            .password(StandardCharsets.UTF_8.encode("// a token string generation that works fine with palo"))
                            .build()
            )
            .build()
            .toBlocking();
    hiveClient.connect(); // Error
4

1 回答 1

0

看起来标识符(客户端 ID)应该设置为 UUID 以外的其他值。文档表明客户端 ID应按以下路径形成:

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

请注意,Google Cloud IoT Core MQTT 设备桥的所有要求都很严格,因此还要验证 Hive 是否配置如下:

  • MQTT 3.1.1
  • TLS 1.2
  • 发布到/devices/DEVICE_ID/events/devices/DEVICE_ID/state
  • 订阅/devices/DEVICE_ID/config/devices/DEVICE_ID/commands/#
  • 服务质量 0 或 1

请注意,如果您不遵守要求,您的设备将断开连接。有关断开连接原因的其他信息可能会在Cloud Console for IoT上显示的注册表日志记录中提供。

于 2020-07-20T23:53:48.470 回答