关于星形拓扑的POST请求?

时间:2019-04-10 03:32:09

标签: node.js http post request esp8266

我使用不同的esp8266从Nodejs服务器接收POST请求。 Node.js将数据保存到MySQL数据库中,并将命令发送到esp8266s。我使用c#应用程序更改特定esp8266的命令,它们解析收到的json,如果不适合他们,则忽略该命令。无论如何,我的问题是我需要每个esp8266都收到一次相同的POST命令,然后“清除”响应或完全停止发送任何命令。简而言之,我需要“对每个人都说相同”。我不确定我是否要解释自己,但我将留下一些有关实现方式的细节:

-> esp8266s每隔X秒向Nodejs服务器发送一次POST请求,并返回一个包含json的响应,其中包括每个esp8266的id,因此我读取有效负载,如果id不匹配则忽略所有内容

->我在发送后清除了服务器上的响应,以避免多次发送。

->如果在清除响应后再次请求esp8266,它将无法获取命令。

->我正在为Node.js使用快递包(不确定其最佳选择)

我知道我的工作方向正确,我只需要一些有关如何解决此问题的建议即可。我真的很感谢您的帮助。

if (strArray[3] == "agv") { //request received by esp8266 device
    res.send(agvResponse);
    resetJSON(agvResponse);
} else if (strArray[3] == "manager") { //request received by c# app

    agvResponse["agvnumber"] = strArray[7];

    if (strArray[11] == "STOP") {
        cmd = "STOP";
        agvResponse["command"] = cmd;
        res.end();
    } else if (strArray[11] == "START") {
        cmd = "START";
        agvResponse["command"] = cmd;
        res.end();
    } else if (strArray[11] == "NEW_DESTINATION") {
        cmd = "NEW_DESTINATION";
        agvResponse["command"] = cmd;
        agvResponse["destination"] = strArray[15];
        res.end();
    }
}

0 个答案:

没有答案