我使用不同的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();
}
}