最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

mqtt异步等待消息,然后响应http发布请求

IT培训 admin 3浏览 0评论

mqtt异步等待消息,然后响应http发布请求

我是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(),但没有找到任何解决方法

回答如下:

您无需从路由处理程序内调用response.send(array),您可以在外部进行此操作。

mqtt异步等待消息,然后响应http发布请求

我是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(),但没有找到任何解决方法

回答如下:

您无需从路由处理程序内调用response.send(array),您可以在外部进行此操作。

发布评论

评论列表 (0)

  1. 暂无评论