node.js - 物联网:无法发布/订阅我的设备上/下链接主题
问题描述
我正在尝试对我在 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。
非常感谢您的帮助。
谢谢!艾哈迈德
解决方案
我过去遇到过类似的问题。我认为问题在于尝试使用“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”。
请尝试上述方法,让我知道它是否有效。
推荐阅读
- java - 将 2D 输入数组转换为非平衡 BST
- c++ - Ns3 - 如何通过 CCH 通道(wave-simple-device.cc 编辑)定期在 VANET 中发送 WSMP 数据包?
- swift - 使用组合框架的按钮操作
- python - Python 3.7 tkinter 8 - 即时更改菜单项“命令”选项
- html - 无法在导航栏 html 中显示徽标
- swift - Swift Decodable,Endpoint 返回完全不同的类型
- ios - 如何确定我的应用程序是否包含加密?
- spring-data-cassandra - 使用 spring-data-cassandra 在 cassandra 中进行分页和排序
- android - Android Studio 启动活动
- java - 谷歌使用 Firebase 登录时的唯一 ID