在Watson物联网中,我们可以使用设备上的相同身份验证令发布事件并订阅命令吗?

时间:2016-08-30 05:29:30

标签: ibm-cloud iot watson-iot

如果我们必须使用Watson IoT平台提供的auth-token同时将事件发布到云并在设备上订阅MQTT消息,那么(在设备上)要遵循的方法是什么? 当我们尝试在设备已订阅某些主题时发布到主题时,连接将丢失。为了同时发布和订阅,应该采用哪种正确的方法? MQTT连接的详细信息如下,

Client id- <d:orgId:deviceType:deviceId>
Username - use-token-auth
Password - <platform-generated-token>

1 个答案:

答案 0 :(得分:1)

根据documentation,Watson IoT Platform中的设备可以从平台发送事件订阅命令注意,设备只能订阅命令而不能订阅事件。你能确保使用的主题是正确的吗?

<强>事件

事件是设备将数据发布到Watson IoT Platform(以及应用程序)的机制。设备控制其消息的内容,并为发送的每个事件指定名称。 以下MQTT主题用于发布事件,

iot-2/evt/event_id/fmt/format_string

,其中

  • event_id 是事件的ID,例如状态。事件ID可以是在MQTT中有效的任何字符串。如果未使用通配符,则订阅者应用程序必须在其订阅主题中使用此字符串,以接收在其主题上发布的事件。
  • format_string 是事件有效内容的格式,例如json。格式可以是MQTT中有效的任何字符串。如果未使用通配符,则订阅者应用程序必须在其订阅主题中使用此字符串,以接收在其主题上发布的事件。

命令

命令是应用程序与设备通信的机制。只有应用程序可以发送命令,命令将发送到特定设备。设备必须确定在收到任何给定命令时要采取的操作。 2 设备可以按以下格式订阅命令主题:

iot-2/cmd/command_id/fmt/format_string

其中

  • command_id 是命令的ID,例如update。命令ID可以是MQTT协议中有效的任何字符串。如果未使用通配符,则设备必须在其订阅主题中使用此字符串才能接收在其主题上发布的命令。
  • format_string 是命令有效内容的格式,例如json。格式可以是MQTT协议中有效的任何字符串。如果未使用通配符,则设备必须在其订阅主题中使用此字符串才能接收在其主题上发布的命令。

有关设备与Watson IoT Platform的连接的更多信息,请参阅document的此部分。

我们已经编写了一个分步指南,以展示如何将设备与Watson IoT Platform相关联,发布事件,从应用程序订阅命令,订阅应用程序中的事件,从应用程序发布命令以使用Java客户端生成Watson物联网平台的库可以在这里找到 - Java Client Library for IBM Watson IoT Platform

此外,您还可以找到多种语言的样本。请参阅this document以获取可用库和样本列表。