• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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)
как ожидалось, все это медленно работает на интерпритаторе.
 
Сверху Снизу