gpt4 book ai didi

node.js - mqtt.js 自动关闭连接

转载 作者:太空宇宙 更新时间:2023-11-04 00:42:58 25 4
gpt4 key购买 nike

我在使用 mqtt.js 客户端库时遇到问题。我正在尝试接收来自 emonhub 的消息。当我打电话时

mosquitto_sub -v -u 'login' -P 'pass' -t 'emon/#'

一切都好。但是当我尝试从 Nodejs 执行此操作时:

[2016-03-11 10:01:03.771] [INFO] [default] - mqtt connected
[2016-03-11 10:01:07.979] [INFO] [default] - emon/emonpi/power1 0
[2016-03-11 10:01:07.994] [INFO] [default] - mqtt closed
[2016-03-11 10:01:08.002] [INFO] [default] - emon/emonpi/power2 0
(...)

这是我的代码:

var mqtt = require('mqtt');

var client = mqtt.connect('mqtt://127.0.0.1:1883', {
username: 'login',
password: 'pass'
});

client.on('connect', function () {
console.log('mqtt connected');

client.subscribe('emon/emonpi/#');

client.on('message', function (topic, message) {
// message is Buffer
console.log(topic + ' ' + message.toString());
client.end();
});
});

client.on('error', function(error) {
console.log('mqtt error: ' + error);
});

client.on('close', function() {
console.log('mqtt closed');
});

client.on('offline', function() {
console.log('offline');
});

client.on('reconnect', function() {
console.log('reconnect');
});

有什么想法吗?

最佳答案

消息处理程序中有 client.end(),一旦收到第一条消息,客户端就会退出

client.on('message', function (topic, message) {
// message is Buffer
console.log(topic + ' ' + message.toString());
client.end(); <---- HERE
});
});

关于node.js - mqtt.js 自动关闭连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35936208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com