繁体   English   中英

如何使用java在IoT中发布MQTT主题?

[英]How do you publish to a MQTT topic in IoT using java?

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

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

“iotf-service”:[{“name”:“物联网平台 - 或”,“标签”:“iotf-service”,“plan”:“iotf-service-free”,“凭证”:{“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",

任何帮助将不胜感激。

谢谢!

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

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

 d:$org:$type:$id

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

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

MQTT密码必须是身份验证令牌:身份验证令牌(例如:MP $ 08VKz!8rXwnR-Q *)

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

 a:$org:$appId

使用API​​密钥建立MQTT连接时,以下情况适用:

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

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

MQTT密码必须是身份验证令牌: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 / {command type} / fmt / {format type}

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM