首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用Eclipse库为IoT连接IBM平台

无法使用Eclipse库为IoT连接IBM平台
EN

Stack Overflow用户
提问于 2017-08-19 18:37:35
回答 1查看 823关注 0票数 2

由于安全原因,IBM最近似乎停止接受到MQTT borker的非TLS连接。

我喜欢一个小应用程序,它使用JavaScript从智能手机读取加速度传感器数据,并通过MQTT发送给消息代理。

本申请坏了。因此,我试图在这个分叉中修复它。

如前所述,非TLS连接被拒绝,这就是我启用TLS的原因:

代码语言:javascript
复制
        window.client.connect({
            onSuccess: onConnectSuccess,
            onFailure: onConnectFailure,
            userName: "use-token-auth",
            password: window.password,
            useSSL: true
});

但还是没有联系。在IBM平台上,我在日志中看到了这个错误,没有别的:

封闭连接自213.55.176.207。该操作未获授权。

现在,我创建了一个测试index.html文件。如果我是作为设备连接,它仍然不工作,但如果我连接作为一个应用程序,它可以工作,如可以看到的这里。但我已经在平台上创建了设备。如果我使用的是沃森IoT平台的旧实例,那么它可以工作,但对于更新的实例则不行。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-21 08:34:03

在应用程序的代码中,您有以下内容:

window.client = new Paho.MQTT.Client("bmzc5i.messaging.internetofthings.ibmcloud.com", 8883, 'a:myOrgId:'+Math.random().toString(16).substr(2, 8));

这是很好的,当应用程序连接id的格式是a:orgId:uniqueIdentifierForTheApplication

uniqueIdentifierForTheApplication可以是任何字符串(在允许的字符集内),并且不需要预先注册,因此在这里生成一个随机数在99%的情况下是可行的。

window.client = new Paho.MQTT.Client("bmzc5i.messaging.internetofthings.ibmcloud.com", 8883, 'd:bmzc5i:'+Math.random().toString(16).substr(2, 8));

当设备连接时,id是d:orgId:typeId:deviceId格式的。要连接设备,必须首先注册它,这样d:orgId:randomNumber的id就不能工作了。

如果您用id myDevice注册了一个设备类型为id myType的设备,并将它的标记设置为myToken,那么您将形成如下连接:

window.client = new Paho.MQTT.Client("bmzc5i.messaging.internetofthings.ibmcloud.com", 8883, 'd:bmzc5i:myType:myDevice'); window.client.connect({ onSuccess: onConnectSuccess, onFailure: onConnectFailure, userName: "use-token-auth", password: "myToken", useSSL: true

此外,在作为设备和应用程序进行连接时,您应该注意到主题空间的不同。

当您作为应用程序进行连接时,您具有组织范围范围。因此,要代表设备发布/订阅事件,可以使用以下主题:

发布到iot-2/type/myType/id/myDevice/evt/statusEvent/fmt/json

当您作为设备连接时,您只有设备范围(这是一种安全机制,以限制受损设备可能造成的损害)。因此,对于设备来说,通过发布到:

iot-2/evt/statusEvent/fmt/json

平台使用进行发布的设备的标识来确定属于哪个设备,而在应用程序中,应用程序决定将事件分配给哪个设备。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45775107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档