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

Маленький сервер с FS NodeMcu.

Тестирую маленький сервер с FS NodeMcu.
Код настройки соединения и разбора запросов GET накачал из интернета.
Много разных вариантов.
Вот так передаю ответы на запросы браузера.
Код:
----------------------------------
-- передача файла из ESP8266
-- скорость 584 к/бит
-- максимальный размер файла 3000 байт  
function Sendfile(client_TCP, filename)
if file.open(filename, "r") then
local size=file.seek("end")--получим размер
file.seek("set")--в начало файла
--print(tgtfile.."="..size)
while (size>0) do
client_TCP:send(file.read(1460))
size=size-1460
  end
file.close()   
  end
end
----------------------------------
Что получается.
Многостраничный (до 250 страниц , по 3 кб)
Медленный 584 к/бит.( померил )
Множество картинок на странице (=<3кб) постепенно появляются.
POST из браузера еще не пробовал.
Светодиодами по мигал через строку запроса.
Файлы с FS NodeMcu закачиваются (до 3 кб) .
Проблемы:
Более 3000 байт передать не получается, интерпретатор ошибок не выдает, но и все пакеты по 1460 после 3-го просто не передаются ! :eek:
Малый размер пакета не помогает.
Простая вставка delay() на время передачи буфера не помогает, похоже tack delay() блокирует передачу TCP.
Как сбросить буфер передачи, или хотя бы получить подтверждение о окончании передачи TCP не понимаю, а на новом запросе буфер как то сбрасывается.

Я только начал изучать HTM и ESP все замечания и комментарии принимаются:)
 

Past

New member
Попробуйте залить https://github.com/marcoskirsch/nodemcu-httpserver/
Там нет таких ограничений.

Тестирую маленький сервер с FS NodeMcu.
Код настройки соединения и разбора запросов GET накачал из интернета.
Много разных вариантов.
Вот так передаю ответы на запросы браузера.
Код:
----------------------------------
-- передача файла из ESP8266
-- скорость 584 к/бит
-- максимальный размер файла 3000 байт  
function Sendfile(client_TCP, filename)
if file.open(filename, "r") then
local size=file.seek("end")--получим размер
file.seek("set")--в начало файла
--print(tgtfile.."="..size)
while (size>0) do
client_TCP:send(file.read(1460))
size=size-1460
  end
file.close()   
  end
end
----------------------------------
Что получается.
Многостраничный (до 250 страниц , по 3 кб)
Медленный 584 к/бит.( померил )
Множество картинок на странице (=<3кб) постепенно появляются.
POST из браузера еще не пробовал.
Светодиодами по мигал через строку запроса.
Файлы с FS NodeMcu закачиваются (до 3 кб) .
Проблемы:
Более 3000 байт передать не получается, интерпретатор ошибок не выдает, но и все пакеты по 1460 после 3-го просто не передаются ! :eek:
Малый размер пакета не помогает.
Простая вставка delay() на время передачи буфера не помогает, похоже tack delay() блокирует передачу TCP.
Как сбросить буфер передачи, или хотя бы получить подтверждение о окончании передачи TCP не понимаю, а на новом запросе буфер как то сбрасывается.

Я только начал изучать HTM и ESP все замечания и комментарии принимаются:)
 
Спасибо Past.
Попробовал, да ограничений нет.
В проекте вставлена хитрая задержка в цикл отправки пакетов.
coroutine.yield() она исключает переполнение буфера.
Скорость прорисовки картинки 14000 байт 4-6 сек. (FireFox)
как ожидалось, все это медленно работает на интерпритаторе.
 
Сверху Снизу