• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Перезагрузка страницы

dimaxa7

New member
Добрый день! Можно ли сделать перезагрузку страницы пользователя изнутри ESP? Т.е. у меня заканчивает выполняться какая-либо задача и у пользователя страница перезагружается (на ту же, или другую), чтобы он наглядно наблюдал завершение этой задачи.
 

dimaxa7

New member
с прошивкой smart.js доступен websocket...
JS мне не доступен) уточню, что пользуюсь Arduino IDE. Поэтому ограничен библиотекой (не нашел нужного, но мб плохо искал) и стандартными средствами HTML. Но и json и js можно реализовать в HTML документе, но я не знаю, куда искать.
 

Юрий Ботов

Moderator
Команда форума
Написать websocket для ардуино :)
Там ведь ничего особенного нет: при подключении клиент посылает на сервер запрос "пустышку", сервер на него не отвечает но сохраняет его параметры у себя в базе (да, это занимает дополнительную память на сервере). Когда серверу нужно что то сказать клиенту он ищет у себя запрос от данного клиента и в ответ на него шлет клиенту свой "сигнал", убирая пустышку клиента из своей базы. Клиент принимает "сигнал" от сервера и высылает в ответ новую пустышку... Все это поверх обычного http
 

dimaxa7

New member
Написать websocket для ардуино :)
Там ведь ничего особенного нет: при подключении клиент посылает на сервер запрос "пустышку", сервер на него не отвечает но сохраняет его параметры у себя в базе (да, это занимает дополнительную память на сервере). Когда серверу нужно что то сказать клиенту он ищет у себя запрос от данного клиента и в ответ на него шлет клиенту свой "сигнал", убирая пустышку клиента из своей базы. Клиент принимает "сигнал" от сервера и высылает в ответ новую пустышку... Все это поверх обычного http
Отлично, буду посмотреть!
 

kab

New member
Написать websocket для ардуино :)
@dimaxa7
А не проще пойти другим путём:
- Просто периодически из клиента опрашивать сервер, а сервер отвечает исходя из состояния программного флага (флагов), которые устанавливаются исходя из завершения/не завершения требуемой задачи. Правда, тут просматриваются элементы какой-то многозадачности...
 

dimaxa7

New member
@dimaxa7
А не проще пойти другим путём:
- Просто периодически из клиента опрашивать сервер, а сервер отвечает исходя из состояния программного флага (флагов), которые устанавливаются исходя из завершения/не завершения требуемой задачи. Правда, тут просматриваются элементы какой-то многозадачности...
Это уже ajax, по крайней мере, как я его использовал. Ещё подробнее опишу задачу: выполняется она все время за разное время и представляет собой простой ЧПУ с двумя только осями. Во время выполнения пользователь видит страницу с текущим прогрессом, его то обновлять можно по ajax, клиент смотрит в файл .ajax, а сервер его постоянно держит обновленным, т.о. все работает хорошо, а по завершении была идея отправлять на другую страницу сразу, тип "done, перейти на главную/ещё раз/изменить проект", и реализацию этого перехода я и ищу. Знал бы js, наверняка бы нашел все нужное, но увы)
 

tretyakov_sa

Moderator
Команда форума
Добрый день! Можно ли сделать перезагрузку страницы пользователя изнутри ESP? Т.е. у меня заканчивает выполняться какая-либо задача и у пользователя страница перезагружается (на ту же, или другую), чтобы он наглядно наблюдал завершение этой задачи.
Пробуйте GitHub - me-no-dev/ESPAsyncWebServer: Async Web Server for ESP8266 and ESP32
Сам давно хочу на этот сервер перейти, а времени пока не хватает.
 

CodeNameHawk

Moderator
Команда форума
Тег <meta http-equiv='refresh' Connection:'close' content='5'/> заставляет браузер обновлять страницу раз в 5 секунд, по идее в нужный момент заменив содержание HTML страницы, получится как бы переход на другую страницу.
 

Юрий Ботов

Moderator
Команда форума
Сами попробуйте... если страница сложная - задалбывает морганием. Но для простой - тоже выход.
 
Сверху Снизу