Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IBM Bluemix IoT主题/URL,Android与Node.js不同,需要澄清吗?_Android_Node.js_Ibm Cloud_Iot - Fatal编程技术网

IBM Bluemix IoT主题/URL,Android与Node.js不同,需要澄清吗?

IBM Bluemix IoT主题/URL,Android与Node.js不同,需要澄清吗?,android,node.js,ibm-cloud,iot,Android,Node.js,Ibm Cloud,Iot,我正在Bluemix中使用物联网服务,并通过Node.js express服务器和Android设备连接到该服务 Android应用程序基于ibmiot starter应用程序()。这与: URL:.messaging.internetofthings.ibmcloud.com:1883 主题格式:iot-2/cmd/+/fmt/json 凭据:组织、设备类型、设备ID express服务器与npm ibmiotf模块(版本0.2.2)连接。连接到: URL:.messaging.interne

我正在Bluemix中使用物联网服务,并通过Node.js express服务器和Android设备连接到该服务

Android应用程序基于ibmiot starter应用程序()。这与:
URL:
.messaging.internetofthings.ibmcloud.com:1883
主题格式:iot-2/cmd/+/fmt/json
凭据:组织、设备类型、设备ID

express服务器与npm ibmiotf模块(版本0.2.2)连接。连接到:
URL:
.messaging.internetofthings.ibmcloud.com:8883
主题格式:iot-2/type/
/id/
/cmd/
/fmt/json
凭据:组织、id(Bluemix空间名称?)、apiKey、apiToken

如果我尝试用Android应用程序订阅第二种格式的主题,我会因为主题无效而与服务断开连接。但是,npm节点提供的对象(ApplicationClient)包含publishDeviceCommand(deviceType、deviceId、commandType、format、data)等函数
以第二种格式发布到主题,应用程序无法订阅。主题样式的这种重新格式化是因为不同的版本吗

那么,如何使用应用程序可以订阅的express server发布到有效的主题?这是否需要编写自己版本的publishDeviceCommand?这是可行的,但似乎并不理想。它也是提供的npm模块中的一项功能,更改将仅在本地进行,而不是远程进行


我可以通过service Dashboard查看应用程序以第一种格式发布到主题的事件,但对于express ApplicationClient,我看不到相同的内容-可能是因为它不是注册设备

这里的区别在于,您使用ibmiotf node.js包作为应用程序连接到Bluemix中的物联网服务,而Android应用程序作为设备连接

作为设备连接时,使用的主题格式为

iot-2/cmd/<command_id>/fmt/<format>
node.js应用程序发布到

iot-2/type/Android/id/myTestDevice/cmd/updates/fmt/json
然后设备将接收该消息


这里的区别在于,您使用ibmiotf node.js包作为应用程序连接到Bluemix中的物联网服务,而Android应用程序作为设备连接

作为设备连接时,使用的主题格式为

iot-2/cmd/<command_id>/fmt/<format>
node.js应用程序发布到

iot-2/type/Android/id/myTestDevice/cmd/updates/fmt/json
然后设备将接收该消息


您是否在连接android设备时未指定组织?能否确认您是否以注册设备连接?例如:.messaging.internetofthings.ibmcloud.com我在原始问题中添加了更多信息,但我为两个连接指定了相同的组织。您是否在未指定组织的情况下连接android设备?能否确认您是否以注册设备连接?例如:.messaging.internetofthings.ibmcloud.com我已在原始问题中添加了更多信息,但我为两个连接指定了相同的组织。非常有效,谢谢。最后一个问题,当我使用fmt/json发布到一个主题并将一个json对象作为消息传递时,我被告知消息必须是一个字符串。我可以通过调用JSON.stringify(object)来实现这一点。这是正确的方法吗?MQTT客户机实际上没有使用主题字符串中指定的格式。“/fmt/json”的用途是:1。可用性。您知道,在应用程序中,您希望收到的有关此主题的数据应该与给定的格式类似。2.IoTF历史数据。Bluemix中的物联网服务提供对设备历史数据的访问。使用“/fmt/json”发布到主题的消息存储在历史数据中。很好用,谢谢。最后一个问题,当我使用fmt/json发布到一个主题并将一个json对象作为消息传递时,我被告知消息必须是一个字符串。我可以通过调用JSON.stringify(object)来实现这一点。这是正确的方法吗?MQTT客户机实际上没有使用主题字符串中指定的格式。“/fmt/json”的用途是:1。可用性。您知道,在应用程序中,您希望收到的有关此主题的数据应该与给定的格式类似。2.IoTF历史数据。Bluemix中的物联网服务提供对设备历史数据的访问。使用“/fmt/json”发布到主题的消息存储在历史数据中。
iot-2/cmd/updates/fmt/json
iot-2/type/Android/id/myTestDevice/cmd/updates/fmt/json