Замыслил в приборе простенький веб-интерфейс.
Использовал ESP-01 (v3.0.5), как точка доступа, настроил и сохранил.
Поднял на своем МК неблокирующий ТСР интерфейс через АТ команды.
Написал неблокирующий Веб-сервер.
Написал страничку, 4 гифки + 2 фрейма. Почему так. Страничку толстая храним во флеше, а переписываем только фреймы, хранящиеся в ОЗУ.
Столкнулся с нехваткой сокетов!!!
Когда использую интерфейс на 5 сокетов более менее работает, и то не всегда, иногда один файл грузится с ошибкой.
При 3 разрешенных сокетах, вообще все плохо.
Почему борюсь за количество сокетов. Каждый сокет требует 2кбайта итого 3*2=6к+ 2к на уарт, итого 8к для уже меня расточительно)
Снифером изучил обмен пакетами (браузер FireFox, режим KeepAlive ):
23 TCP 192.168.0.101 192.168.0.1 50315 80 http 22 3 722 Bytes 5 050 Bytes 31.10.2024 19:06:36:794 31.10.2024 19:06:45:784 00:00:08.989
24 TCP 192.168.0.101 192.168.0.1 50316 80 http 24 4 040 Bytes 5 396 Bytes 31.10.2024 19:06:37:440 31.10.2024 19:06:46:533 00:00:09.092
25 TCP 192.168.0.101 192.168.0.1 50317 80 http 14 2 391 Bytes 3 347 Bytes 31.10.2024 19:06:37:440 31.10.2024 19:06:45:032 00:00:07.592
//запрос zn1.htm ошибка
26 TCP 192.168.0.101 192.168.0.1 50318 80 http 7 445 Bytes 1 210 Bytes 31.10.2024 19:06:37:468 31.10.2024 19:06:37:479 00:00:00.011
27 TCP 192.168.0.101 192.168.0.1 50319 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:37:481 31.10.2024 19:06:37:490 00:00:00.009
28 TCP 192.168.0.101 192.168.0.1 50320 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:37:492 31.10.2024 19:06:37:519 00:00:00.027
29 TCP 192.168.0.101 192.168.0.1 50321 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:37:522 31.10.2024 19:06:37:526 00:00:00.004
30 TCP 192.168.0.101 192.168.0.1 50322 80 http 7 445 Bytes 1 210 Bytes 31.10.2024 19:06:37:529 31.10.2024 19:06:37:538 00:00:00.009
31 TCP 192.168.0.101 192.168.0.1 50323 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:37:541 31.10.2024 19:06:37:547 00:00:00.006
32 TCP 192.168.0.101 192.168.0.1 50324 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:37:551 31.10.2024 19:06:37:556 00:00:00.005
33 TCP 192.168.0.101 192.168.0.1 50325 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:37:558 31.10.2024 19:06:37:563 00:00:00.005
34 TCP 192.168.0.101 192.168.0.1 50326 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:37:566 31.10.2024 19:06:37:571 00:00:00.005
35 TCP 192.168.0.101 192.168.0.1 50327 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:37:595 31.10.2024 19:06:37:595 00:00:00.000
//запрос gif4.gif ошибка
36 TCP 192.168.0.101 192.168.0.1 50328 80 http 7 356 Bytes 1 032 Bytes 31.10.2024 19:06:38:100 31.10.2024 19:06:38:107 00:00:00.007
37 TCP 192.168.0.101 192.168.0.1 50329 80 http 5 356 Bytes 952 Bytes 31.10.2024 19:06:38:110 31.10.2024 19:06:38:114 00:00:00.004
38 TCP 192.168.0.101 192.168.0.1 50330 80 http 5 356 Bytes 952 Bytes 31.10.2024 19:06:38:127 31.10.2024 19:06:38:127 00:00:00.000
39 TCP 192.168.0.101 192.168.0.1 50331 80 http 7 356 Bytes 1 032 Bytes 31.10.2024 19:06:38:128 31.10.2024 19:06:38:142 00:00:00.014
40 TCP 192.168.0.101 192.168.0.1 50332 80 http 5 356 Bytes 952 Bytes 31.10.2024 19:06:38:143 31.10.2024 19:06:38:147 00:00:00.004
41 TCP 192.168.0.101 192.168.0.1 50333 80 http 7 356 Bytes 1 032 Bytes 31.10.2024 19:06:38:150 31.10.2024 19:06:38:159 00:00:00.009
42 TCP 192.168.0.101 192.168.0.1 50334 80 http 5 356 Bytes 952 Bytes 31.10.2024 19:06:38:160 31.10.2024 19:06:38:166 00:00:00.006
43 TCP 192.168.0.101 192.168.0.1 50335 80 http 5 356 Bytes 952 Bytes 31.10.2024 19:06:38:169 31.10.2024 19:06:38:174 00:00:00.005
44 TCP 192.168.0.101 192.168.0.1 50336 80 http 5 356 Bytes 952 Bytes 31.10.2024 19:06:38:178 31.10.2024 19:06:38:182 00:00:00.004
45 TCP 192.168.0.101 192.168.0.1 50337 80 http 5 356 Bytes 952 Bytes 31.10.2024 19:06:38:185 31.10.2024 19:06:38:194 00:00:00.009
// запрос zn2.htm ошибка
46 TCP 192.168.0.101 192.168.0.1 50338 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:38:255 31.10.2024 19:06:38:257 00:00:00.002
47 TCP 192.168.0.101 192.168.0.1 50339 80 http 7 445 Bytes 1 210 Bytes 31.10.2024 19:06:38:260 31.10.2024 19:06:38:276 00:00:00.016
48 TCP 192.168.0.101 192.168.0.1 50340 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:38:277 31.10.2024 19:06:38:285 00:00:00.008
49 TCP 192.168.0.101 192.168.0.1 50341 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:38:288 31.10.2024 19:06:38:298 00:00:00.010
50 TCP 192.168.0.101 192.168.0.1 50342 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:38:299 31.10.2024 19:06:38:304 00:00:00.005
51 TCP 192.168.0.101 192.168.0.1 50343 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:38:306 31.10.2024 19:06:38:312 00:00:00.006
52 TCP 192.168.0.101 192.168.0.1 50344 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:38:313 31.10.2024 19:06:38:320 00:00:00.007
53 TCP 192.168.0.101 192.168.0.1 50345 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:38:321 31.10.2024 19:06:38:326 00:00:00.005
54 TCP 192.168.0.101 192.168.0.1 50346 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:38:328 31.10.2024 19:06:38:376 00:00:00.048
55 TCP 192.168.0.101 192.168.0.1 50347 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:38:377 31.10.2024 19:06:38:377 00:00:00.000
Что я вижу. Браузер долбится в закрытую дверь 10 раз с интервалом ~10мс, а переспросить по другому соединению не догадывается . По первым трем соединениям выкачивает, остальные три файла становятся в ошибку.
Как только на загрузку попадают файлы, а имеющиеся соединения заняты. браузер начинает долбится, и если соединение освободится до того как исчерпается долбежка, загрузка пройдет нормально. Иначе загружаемый файл станет в ошибку NS_ERROR_NET_RESET. ЕСП слишком медленная, браузер гораздо быстрее. И он успевает поставить на запросе крест.
Пробовал режим ConnectionClose, там те же самые проблемы.
Что делать?
Вижу один выход. Делать закачку контента скриптом?
Может еще есть варианты?
Использовал ESP-01 (v3.0.5), как точка доступа, настроил и сохранил.
Поднял на своем МК неблокирующий ТСР интерфейс через АТ команды.
Написал неблокирующий Веб-сервер.
Написал страничку, 4 гифки + 2 фрейма. Почему так. Страничку толстая храним во флеше, а переписываем только фреймы, хранящиеся в ОЗУ.
Столкнулся с нехваткой сокетов!!!
Когда использую интерфейс на 5 сокетов более менее работает, и то не всегда, иногда один файл грузится с ошибкой.
При 3 разрешенных сокетах, вообще все плохо.
Почему борюсь за количество сокетов. Каждый сокет требует 2кбайта итого 3*2=6к+ 2к на уарт, итого 8к для уже меня расточительно)
Снифером изучил обмен пакетами (браузер FireFox, режим KeepAlive ):
23 TCP 192.168.0.101 192.168.0.1 50315 80 http 22 3 722 Bytes 5 050 Bytes 31.10.2024 19:06:36:794 31.10.2024 19:06:45:784 00:00:08.989
24 TCP 192.168.0.101 192.168.0.1 50316 80 http 24 4 040 Bytes 5 396 Bytes 31.10.2024 19:06:37:440 31.10.2024 19:06:46:533 00:00:09.092
25 TCP 192.168.0.101 192.168.0.1 50317 80 http 14 2 391 Bytes 3 347 Bytes 31.10.2024 19:06:37:440 31.10.2024 19:06:45:032 00:00:07.592
//запрос zn1.htm ошибка
26 TCP 192.168.0.101 192.168.0.1 50318 80 http 7 445 Bytes 1 210 Bytes 31.10.2024 19:06:37:468 31.10.2024 19:06:37:479 00:00:00.011
27 TCP 192.168.0.101 192.168.0.1 50319 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:37:481 31.10.2024 19:06:37:490 00:00:00.009
28 TCP 192.168.0.101 192.168.0.1 50320 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:37:492 31.10.2024 19:06:37:519 00:00:00.027
29 TCP 192.168.0.101 192.168.0.1 50321 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:37:522 31.10.2024 19:06:37:526 00:00:00.004
30 TCP 192.168.0.101 192.168.0.1 50322 80 http 7 445 Bytes 1 210 Bytes 31.10.2024 19:06:37:529 31.10.2024 19:06:37:538 00:00:00.009
31 TCP 192.168.0.101 192.168.0.1 50323 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:37:541 31.10.2024 19:06:37:547 00:00:00.006
32 TCP 192.168.0.101 192.168.0.1 50324 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:37:551 31.10.2024 19:06:37:556 00:00:00.005
33 TCP 192.168.0.101 192.168.0.1 50325 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:37:558 31.10.2024 19:06:37:563 00:00:00.005
34 TCP 192.168.0.101 192.168.0.1 50326 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:37:566 31.10.2024 19:06:37:571 00:00:00.005
35 TCP 192.168.0.101 192.168.0.1 50327 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:37:595 31.10.2024 19:06:37:595 00:00:00.000
//запрос gif4.gif ошибка
36 TCP 192.168.0.101 192.168.0.1 50328 80 http 7 356 Bytes 1 032 Bytes 31.10.2024 19:06:38:100 31.10.2024 19:06:38:107 00:00:00.007
37 TCP 192.168.0.101 192.168.0.1 50329 80 http 5 356 Bytes 952 Bytes 31.10.2024 19:06:38:110 31.10.2024 19:06:38:114 00:00:00.004
38 TCP 192.168.0.101 192.168.0.1 50330 80 http 5 356 Bytes 952 Bytes 31.10.2024 19:06:38:127 31.10.2024 19:06:38:127 00:00:00.000
39 TCP 192.168.0.101 192.168.0.1 50331 80 http 7 356 Bytes 1 032 Bytes 31.10.2024 19:06:38:128 31.10.2024 19:06:38:142 00:00:00.014
40 TCP 192.168.0.101 192.168.0.1 50332 80 http 5 356 Bytes 952 Bytes 31.10.2024 19:06:38:143 31.10.2024 19:06:38:147 00:00:00.004
41 TCP 192.168.0.101 192.168.0.1 50333 80 http 7 356 Bytes 1 032 Bytes 31.10.2024 19:06:38:150 31.10.2024 19:06:38:159 00:00:00.009
42 TCP 192.168.0.101 192.168.0.1 50334 80 http 5 356 Bytes 952 Bytes 31.10.2024 19:06:38:160 31.10.2024 19:06:38:166 00:00:00.006
43 TCP 192.168.0.101 192.168.0.1 50335 80 http 5 356 Bytes 952 Bytes 31.10.2024 19:06:38:169 31.10.2024 19:06:38:174 00:00:00.005
44 TCP 192.168.0.101 192.168.0.1 50336 80 http 5 356 Bytes 952 Bytes 31.10.2024 19:06:38:178 31.10.2024 19:06:38:182 00:00:00.004
45 TCP 192.168.0.101 192.168.0.1 50337 80 http 5 356 Bytes 952 Bytes 31.10.2024 19:06:38:185 31.10.2024 19:06:38:194 00:00:00.009
// запрос zn2.htm ошибка
46 TCP 192.168.0.101 192.168.0.1 50338 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:38:255 31.10.2024 19:06:38:257 00:00:00.002
47 TCP 192.168.0.101 192.168.0.1 50339 80 http 7 445 Bytes 1 210 Bytes 31.10.2024 19:06:38:260 31.10.2024 19:06:38:276 00:00:00.016
48 TCP 192.168.0.101 192.168.0.1 50340 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:38:277 31.10.2024 19:06:38:285 00:00:00.008
49 TCP 192.168.0.101 192.168.0.1 50341 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:38:288 31.10.2024 19:06:38:298 00:00:00.010
50 TCP 192.168.0.101 192.168.0.1 50342 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:38:299 31.10.2024 19:06:38:304 00:00:00.005
51 TCP 192.168.0.101 192.168.0.1 50343 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:38:306 31.10.2024 19:06:38:312 00:00:00.006
52 TCP 192.168.0.101 192.168.0.1 50344 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:38:313 31.10.2024 19:06:38:320 00:00:00.007
53 TCP 192.168.0.101 192.168.0.1 50345 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:38:321 31.10.2024 19:06:38:326 00:00:00.005
54 TCP 192.168.0.101 192.168.0.1 50346 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:38:328 31.10.2024 19:06:38:376 00:00:00.048
55 TCP 192.168.0.101 192.168.0.1 50347 80 http 5 445 Bytes 1 130 Bytes 31.10.2024 19:06:38:377 31.10.2024 19:06:38:377 00:00:00.000
Что я вижу. Браузер долбится в закрытую дверь 10 раз с интервалом ~10мс, а переспросить по другому соединению не догадывается . По первым трем соединениям выкачивает, остальные три файла становятся в ошибку.
Как только на загрузку попадают файлы, а имеющиеся соединения заняты. браузер начинает долбится, и если соединение освободится до того как исчерпается долбежка, загрузка пройдет нормально. Иначе загружаемый файл станет в ошибку NS_ERROR_NET_RESET. ЕСП слишком медленная, браузер гораздо быстрее. И он успевает поставить на запросе крест.
Пробовал режим ConnectionClose, там те же самые проблемы.
Что делать?
Вижу один выход. Делать закачку контента скриптом?
Может еще есть варианты?