Я подключился к серверу mqtt и подписался на тему. Клиент зависает, если я не использую mqtt.end (). Хотя я использую или не использую mqtt.end (), клиент получает сообщение только один раз. Можно ли заставить клиента продолжать слушать и продолжать получать сообщения с сервера? Буду признателен, если вы можете помочь. Заранее спасибо!
"use strict";
const mqtt = require('async-mqtt');
let startPolling = async (event, context) => {
await run("tram", "#");
};
const run = async(mode, route) => {
const client = await mqtt.connectAsync('mqtts://mqtt.hsl.fi:8883/');
console.log("Starting");
try {
let response = "";
await client.subscribe(`/hfp/v2/journey/+/vp/${mode}/${route}`);
response = await getMessageAsync(client, "message");
console.log(response.toString());
await client.end();
console.log("Done");
} catch (e){
console.log(e.stack);
process.exit();
}
}
const getMessageAsync = (client, ...args) => {
return new Promise((resolve, reject) => {
client.on(...args, (topic, message) => {
resolve(message);
});
});
}
startPolling();