![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TIdHTTPServer (Indy 10): ответ порциями без разрыва соединения [D7, WinXP]
Забияка © (2006-05-30 16:14:00)Используется TIdHTTPServer, в событии OnCommandGet идет обработка запроса клиента, после окончания пишет его в AResponseInfo.ContentText. Нужно организовать отправку ответа частями не прерывая соединение.
Забияка (2006-05-30 18:38:00) [1]Спасибо.
umbra (2006-05-30 18:14:00) [2]
OnCommandGetвсегда вызывается в контексте текущей сессии. Для каждой сессии создается отдельный поток, в котором и вызывается обработчик.
Забияка (2006-05-30 18:08:00) [3]Благодарю за ответ. Если взять за основу модель запрос-ответ-запрос-ответ, как в пресловутом OnCommandGet понять что это продолжение начатой сессии?
Забияка (2006-05-30 17:39:00) [4]Когда то давно, я видел, что такое делали, но на потоке, жаль ссылки не осталось :(
umbra (2006-05-30 17:37:00) [5]
> Именно это и имею ввиду
это невозможно. HTTP работает по схеме запрос-ответ. Нет запроса - нет ответа.
Забияка (2006-05-30 17:17:00) [6]Именно это и имею ввиду
umbra (2006-05-30 16:54:00) [7]
> Как досылать данные?
>
клиент должен послать еще один запрос. или вы имеете в виду, что надо частями отвечать на один запрос?
Забияка (2006-05-30 16:42:00) [8]Как досылать данные?
umbra (2006-05-30 16:33:00) [9]по умолчанию
TIdHTTPServerне прерывает соединения после ответа на запрос (TIdHTTPServer.KeepAlive = True). Т.е. на сервере вроде бы ничего делать не надо. надо чтобы соединение не прерывал клиент и чтобы клиент объявлял, что работает согласно HTTP 1.1.