Esp8266 get запрос к сайту меняется session_id
- Войдите на сайт для отправки комментариев
Ср, 13/01/2021 - 13:49
Здравствуйте, сделал простенький веб сервер дома на базе debian, и подключаюсь к нему с модуля esp8266 каждые 3 секунды, получить и принять несколько переменных, все бы ничего, но замусоривается папка с сессиями и сервер перестает работать (там есть ограничение на количество файлов в папке) начал проверять и увидел что каждый запрос присваивается новый session_id, думал проблема на сервере, но при входе через браузер с компьютера такой проблемы нет, может кто-нибудь помочь в данном вопросе?
Код самой отсылки вот такой:
static String myserver = "192.168.0.4"; static String url = "/send";//С разными параметрами ?data=5&t=6 и т.д. void SendData() { WiFiClient client; HTTPClient http; http.begin(client, String(myserver) + String(url)); int httpCode = http.GET(); if (httpCode > 0) { String payload = http.getString(); Serial.println(payload); } else { Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str()); } }
Проблема в сервере. Он не должен выдавать сессию, если она не нужна для работы.
Так если я захожу с браузера, потом закрываю и опять захожу по этому же адресу (на который идет отправка), то сессия одна и та же.
Сейчас попробую посмотреть php.ini, может там что-то есть, но как бы любой клиент приходящий на сайт получает индентификатор сессии, а меняется он почему-то когда заходишь с модуля
Все же мне кажется это или из-за кода или из-за модуля, на сервере все стандартно как у всех
попробую еще про php почитать, вдруг и правда что-то там, про модуль таких вопросов ни у кого не нашел
Я не ясно написал, что ли? Попробуй ещё раз прочитать.
Сервер. Не. Должен. Выдавать. Сессию. Если. Она. Не. Нужна. Для. Работы.
попробуйте сменить ключ
ession.save_handler = files
с files на значение MM или Memcache
client.stop();
про модуль таких вопросов ни у кого не нашел
а я почему-то в гугле вижу тучу вопросов про то, как чистить старые сессии, иначе забивается диск
А если на странице идет авторизация, разве сессия не требуется? у меня идет, проблема скорее всего в том что при отправке каждого запроса клиент заново авторизуется.
про модуль таких вопросов ни у кого не нашел
а я почему-то в гугле вижу тучу вопросов про то, как чистить старые сессии, иначе забивается диск
Это я знаю как делается на сервере, просто интервал чистки не должен быть маленьким, но 28800 сессий от одного клиента, это тоже не хорошо. На линуксе предел папки около 1,5млн файлов потом сервак даже авторизовать не хочет
Это я знаю как делается на сервере, просто интервал чистки не должен быть маленьким
В инете рекомендуют раз в час. А если надо - да хоть раз в минуту. За сколько ваши 280 тыс сессий накапливаются?
все решил я вопрос на сервере
session_destroy(); в коде страницы
и она просто удаляется
Спасибо всем, за участие, все же натолкнули меня на сервере глядеть.
session_destroy(); в коде страницы
Так?
// Закрываем сессию
session_destroy();
?>
да, у меня там было просто die();
да, у меня там было просто die();
и где эти файлы сессий болтаются? глянуть хочется, может у меня они тоже имеются )))
у меня дело в том что стоит панель Vesta cp и они лежат /home/admin/tmp
она когда ставится меняет стандартное место, но думаю в конфиге php.ini указано место