使用node-red订阅MQTT无法在bluemix中工作

时间:2017-05-09 13:50:03

标签: ibm-cloud mqtt iot node-red

我在MQTT通信方面遇到了麻烦。我是MQTT和IOT的新手。我使用IBM Bluemix作为云服务。我可以使用设备类型上的节点红色MQTT节点发布数据。但我无法订阅该设备和主题。每当我尝试订阅时,它都会断开连接。 感谢

在此图片中,我将状态事件发布到设备 enter image description here

在这张图片中,我将在云中获取已发布的数据 enter image description here

但是,如下所示,当我尝试订阅时,它会断开连接 enter image description here

PS:我使用相同的客户端ID。我不知道如何为同一设备类型使用不同的客户端ID。

2 个答案:

答案 0 :(得分:2)

发布时,您将作为设备发布并使用设备客户端ID进行连接。设备无法订阅状态事件,因此您应该订阅应用程序。它将使用诸如A:orgId:appId https://console.ng.bluemix.net/docs/services/IoT/applications/mqtt.html#mqtt

之类的ID进行连接

答案 1 :(得分:0)

我正在添加此信息作为答案,因为它太长而无法作为评论。您可以从Watson IOT Platform服务仪表板生成API密钥。

连接应用程序时,您需要3个属性:

组织($ org)

API密钥($ key)

API令牌($令牌)

应用程序需要API密钥才能连接到组织。注册API密钥时,将生成必须与该API密钥一起使用的令牌。

要生成API密钥和令牌,请启动Watson IoT服务信息中心。从左侧边栏中选择“应用程序”,然后在顶部菜单中选择“API密钥”,并选择右上角的“生成API密钥”按钮。该平台将为您提供一对“API密钥”和“身份验证令牌”,您需要记下这些 见截图。 enter image description here

API密钥看起来像这样:a:$ org:a84ps90Ajs

令牌看起来像这样:MP $ 08VKz!8rXwnR-Q *

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

MQTT客户端ID:a:$ org:$ appId MQTT用户名必须是API密钥:a:$ org:a84ps90Ajs MQTT密码必须是身份验证令牌:MP $ 08VKz!8rXwnR-Q *