gpt4 book ai didi

java - 如何使用 java 发布到 IoT 中的 MQTT 主题?

转载 作者:行者123 更新时间:2023-11-29 04:47:27 25 4
gpt4 key购买 nike

在 Bluemix 中,我有一个 java_buildpack 应用程序,它当前从 Message Hub 主题中获取/使用消息,我现在想重新格式化该消息并将其发布到 Mqtt 客户端。我将物联网平台服务绑定(bind)到我的 java_buildpack 应用程序,并且我创建了一个设备类型 javaDevice 和设备 ID javaDevice01。

这是我的 iotf 服务的环境变量:

"iotf-service": [ { "name": "Internet of Things Platform-or", "label": "iotf-service", "plan": "iotf-service-free", "credentials": { "iotCredentialsIdentifier": "a2g6k39sl6r5", "mqtt_host": "qzfiiy.messaging.internetofthings.ibmcloud.com", "mqtt_u_port": 1883, "mqtt_s_port": 8883, "base_uri": "https://qzfiiy.internetofthings.ibmcloud.com:443/api/v0001", "http_host": "qzfiiy.internetofthings.ibmcloud.com", "org": "qzfiiy", "apiKey": "xxxxxxxxxxxxxxx", "apiToken": "xxxxxxxxxxxxxx" } }

当我创建 MqttClient 的实例时,我应该传入什么:

MqttClient mqttClient = new MqttClient(broker, clientId, persistence);

我想我在某处读到 clientId 应该是这样的:

A:qzfiiy:javaDevice:javaDevice01

经纪人应该传递什么?我是否使用此环境变量 - "mqtt_host": "qzfiiy.messaging.internetofthings.ibmcloud.com",

如有任何帮助,我们将不胜感激。

谢谢!

最佳答案

如果您作为应用程序连接,请使用应用程序条件。如果作为设备连接,请使用设备标准(见下文)。

对于设备:使用以下格式的客户端 ID 进行身份验证

 d:$org:$type:$id

MQTT 客户端 ID 必须是 d:$org:$type:$id

MQTT用户名必须是use-token-auth

MQTT 密码必须是认证 token :auth token (ex: MP$08VKz!8rXwnR-Q*)

APPLICATION 使用以下格式的客户端 ID 进行身份验证:

 a:$org:$appId

使用 API key 建立 MQTT 连接时,适用以下条件:

MQTT 客户端 ID:a:$org:$appId

MQTT用户名必须是API key :a:$org:apikeyvalue

MQTT密码必须是认证token:APItoken

如果您需要这些主题,那么这些主题如下。

对于应用程序,事件主题是 iot-2/type/{device type}/id/{device id}/evt/{event type}/fmt/{format type}

对于应用程序,命令主题是 iot-2/type/{device type}/id/{device id}/cmd/{command type}/fmt/{format type}

对于设备,事件主题是 iot-2/evt/{event type}/fmt/{format type}

对于命令,命令主题是 iot-2/cmd/{命令类型}/fmt/{格式类型}

您可以引用文档以获取更多信息。 https://iotf.readthedocs.org/en/latest/?cm_mc_uid=41893914391914121143444&cm_mc_sid_50200000=1460668601

您还可以使用封装了所有功能并提供包装器 API 的 java 客户端库 https://github.com/ibm-messaging/iot-java/releases?cm_mc_uid=41893914391914121143444&cm_mc_sid_50200000=1460668601

对于 MQTT 代理,您需要使用 {orgid}.messaging.internetofthings.ibmcloud.com

关于java - 如何使用 java 发布到 IoT 中的 MQTT 主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36624232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com