我在整个JS和node.js和npm中都是新手,我试图在一个类的项目中使用mqtt代理,所以我从npm安装了mqtt模块并给了我一个想法它是如何工作的我在npm页面中运行了这个例子,但它似乎不起作用,它只是挂起而没有打印“hello mqtt”它说它应该?我确定我错过了什么,但我真的不知道是什么。 代码是:
var mqtt = require('mqtt')
var client = mqtt.connect('mqtt://test.mosquitto.org')
client.on('connect', function () {
client.subscribe('presence')
client.publish('presence', 'Hello mqtt')
})
client.on('message', function (topic, message) {
// message is Buffer
console.log(message.toString())
client.end()
})
我从中得到的页面是https://www.npmjs.com/package/mqtt
我也试过使用我自己的经纪人,但它也没有用。
答案 0 :(得分:0)
这可能是很多事情,但最有可能的是你没有连接到经纪人。
示例代码根本没有错误处理,因此它无法告诉您何时无法连接。请尝试以下代码,该代码应该告诉您正在进行的操作。
var mqtt = require('mqtt')
var options = {
connectTimeout: 10000
};
var client = mqtt.connect('mqtt://test.mosquitto.org',options)
client.on('connect', function () {
console.log("connected");
client.subscribe('presence')
client.publish('presence', 'Hello mqtt')
})
client.on('error', function(err){
console.log("error %j", err);
});
client.on('close',function(){
console.log("client disconnected");
});
client.on('message', function (topic, message) {
// message is Buffer
console.log(message.toString())
client.end()
})
我已将连接超时从默认值30下降到10秒,因此您可以更快地看到它失败。