Добрый день!
Делаю на базе TCPServerEx web сервер, есть пару вопросов по подключениям:
TCPServerEX создает экземпляр мультика при подключении клиента и удаляе его при отключении.
Допустим мы запросили с сервера html страничку, на страничке есть ссылки на скрипты, стили, картинки. Браузер создает кучу коннектов к серверу дабы быстрее скачать все необходимые файлы указанные на странице.
Пытаюсь в одном соединении выдать все файлы страницы:
Указываю дополнительный заголовок keep-alive: timeout=10,max=100 http://tools.ietf.org/id/draft-thomson-hybi-http-timeout-01.html - тут сказано что он как раз это позволяет, в итоге при загрузке страницы с 6 скриптамиcss и прочим создается 6 экземпляров мультика TCPServerEx....при закрытии браузера экземпляры не удаляются.
Куда копать?
Этот топик читают: Гость
Ответов: 655
Рейтинг: 18
|
|||
карма: 0 |
|
Ответов: 1343
Рейтинг: 31
|
|||
Gunnman писал(а): .при закрытии браузера экземпляры не удаляются.Куда копать? Определяем работоспособность конекта внутри каждого мультика далее через точку выхода мультика с индексом события, в поток заносим индекс мультика и уничтожаем его через ##delete (ПОСЛЕ ПРОВЕРКИ РАБОТОСПОСОБНОСТИ НА ВСЯКИЙ ПОЖАРНЫЙ НАДО ОСТАНАВЛИВАТЬ ВСЮ СХЕМУ МУЛЬТИКА, ИЛИ ДЕЛАТЬ СРАЗУ ТАК ЧТО БЫ ПРИ ДИСКОНЕКТЕ ВСЕ ОСТАНАВЛИВАЛОСЬ) ------------ Дoбавленo в 12.27: Вот пример жёсткого авто-удаления мультика по окончании работы, тоесть в данном случаи после дисконнекта клиента
|
|||
карма: 2 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 4 раз(а), последний 2025-01-09 23:45:18 |
|||
карма: 0 |
|
Ответов: 2125
Рейтинг: 159
|
|||
109.235.188.9 писал(а): в итоге получается что он делает 6 запросов к TCPServerEX...а тот в свою очередь делает 5 экземпляров схемы.Я для файлов *.js,*.css указываю в заголовке Connection: close , т.к после выдачи файла браузеру коннект держать не имеет смысла, а для *.html файлов указываю Connection: Keep-Alive Всё правильно. Сначала грузится html, соединение не разрывается, затем грузится что-либо из *.js,*.css после чего соединение разрывается, как ты и хотел. Остальное грузится в отдельном соединении, если это не html. |
|||
карма: 1 |
|
Ответов: 1343
Рейтинг: 31
|
|||
Впринципе суть понятна, не происходит дисконнекта при передаче файлов, а значит нам надо сделать то что будет информировать нас о ЗАВЕРШЕНИИ ПЕРЕДАЧИ ОТВЕТА, и по этому тут либо использовать альтернативные компоненты TCP (в которых есть точка onSend), либо вот так попробовать(на простых компонентах работает, а вот на счёт TCP не знаю, попробуй ):
code_34507.txt |
|||
карма: 2 |
| ||
файлы: 1 | code_34507.txt [2.5KB] [201] |
5