【发布时间】:2018-04-23 16:50:24
【问题描述】:
我是 node.js 的新手,我正在尝试制作一个 webhook,我在其中收到一个 HTTP 发布请求,并希望通过 mqtt 发送请求并等待 mqtt 消息参考 MQTT 消息,然后将这些消息发送一个响应通过 HTTP
var array = [];
const client = mqtt.connect(MQTTServer)
var count =0;
client.on('message', (topic, message) => {
array[count] = message
count ++
}
app.post('/tesr', function (request, response) {
client.publish ('outTopic' , 'request ');
client.subscribe('inTopic')
//wait for multiple mqtt message in MQTT callback
//after all messages received or timeout return here
client.unsubscribe('inTopic')
count = 0
response.status(200).json(array);
}
所以尝试了while() 和seInterval(),但没有找到任何解决方案
【问题讨论】:
-
您需要为下一条
inTopic消息和await创建一个promise。您可以循环执行。 -
如何让
client.on()回调函数在消息到达时触发,然后在收到所有x条消息时触发,否则超时 -
@saniljhaveri 您是否设法为多个请求执行此操作?
标签: javascript node.js http async-await mqtt