Я использую разные esp8266 для получения запросов POST от сервера Nodejs.Nodejs сохраняет данные в MySQL db и отправляет команды esp8266s.Я использую приложение ac # для изменения команд для конкретного esp8266, они анализируют полученный json и игнорируют команду, если она не для них.В любом случае, моя проблема в том, что мне нужно, чтобы каждый esp8266 получал одну и ту же команду POST один раз, а затем «очищал» ответ или вообще прекращал посылать какую-либо команду.Короче говоря, мне нужно «сказать то же самое каждому из них».Я не уверен, объяснил ли я сам, но оставлю некоторые подробности о том, как я реализовал:
-> esp8266s отправляет POST-запросы на сервер Nodejs каждые X секунд и возвращает ответ с json, чтосодержит идентификатор для каждого esp8266, поэтому я читаю полезную нагрузку и игнорирую все, если идентификатор не совпадает
-> Я очищаю ответ на сервере после отправки, чтобы избежать многократной отправки.
-> Если второй esp8266 запрашивает после очистки ответа, он не получит команду.
-> Я использую экспресс-пакет для Nodejs (не уверен, что это лучший вариант)
Я знаю, что я на правильном пути, мне просто нужно несколько советов, как справиться с этой проблемой.Буду очень признателен за любую помощь.
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();
}
}