首页 > 解决方案 > 物联网:无法发布/订阅我的设备上/下链接主题

问题描述

我正在尝试对我在 TTN 上注册的设备的发布/订阅机制进行快速测试,以便我可以在传入 TTN 代理的数据上构建我的完整解决方案应用程序。

目前我正在等待我的 loRa 模块到达,这就是为什么我想使用一个简单的 nodeJS 脚本来发布虚拟数据,而另一个使用虚拟数据订阅和构建应用程序。我为此使用以下代码:

var mqtt = require('mqtt')
    var options = {
port: 1883,
host: ‘mqtt://eu.thethings.network’,
username: ‘xxxx’, // here I wrote my app id
password: ‘xxxx’ // here I wrote the access key
};

var client = mqtt.connect(‘mqtt://eu.thethings.network’,options)

client.on(‘connect’, function () {
client.subscribe(‘appID/devices/MyDeviceName/down’, function (err) {
if (!err) {
client.publish(‘appID/devices/MyDeviceName/down’, ‘Hello mqtt’)
}
})
})

client.on(‘message’, function (topic, message) {
// message is Buffer
console.log(message.toString())
// client.end()
})

然而这并没有做任何事情,我正在观看 TTN 上的数据,没有任何内容。

我也尝试过使用 mqtt 资源管理器,但它不起作用。

当我在我的机器上玩代理时,这两种方法都运行良好,在云上玩 eclipse 和 mosquittoo。

非常感谢您的帮助。

谢谢!艾哈迈德

标签: node.jsmqttiot

解决方案


我过去遇到过类似的问题。我认为问题在于尝试使用“mqtt”而不是“https”。对我来说,当我打电话时它起作用了

mqtt.connect('https://thethings.network:1883', {
    "username": username,
    "password": password
}

但是,我没有使用该网站的社区版本(The Things Stack V3),因此可能会略有不同。例如,我必须使用“My-App-Id@My-Company-Name”而不是“My-App-Id”。

请尝试上述方法,让我知道它是否有效。


推荐阅读