![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Небуферизованный вывод [D5]
Дмитрий © (2002-01-09 21:20:00)Пусть есть перловый cgi с отключенной буферизацией ($| = 1), который в бесконечном цикле с периодом X секунд выводит данные клиенту, то есть в клиенту в течение всего сеанса данные дописываются в броузер (push - технология, так пишутся некоторые чаты). Каким макаром и из чего можно сделать клиента, который понимает, что соединение не закрыто? Пока что мне понятно только то, что надо как-то использовать потоки, поскольку Indy-компоненты на методе GET просто зависают, то есть ожидают окончания вывода :) ; надо бы получать по порциям вывод и писать его в какой-нибудь Memo. Заранее благодарен :)
Дмитрий (2002-01-09 22:39:00) [1]Ладно, пример
print "Content-Type: text/html\n\n";
print "<html><body><h1>Start</h1>";
$| = 1;
while (1) {
print "Continue<br>";
sleep(5);
}
# цикл и вывод продолжается, пока клиент не закроет броузер. В броузере каждые 5 сек. будет появляться новая строка. Проблема в том, чтобы сделать аналог.
Wonder (2002-01-09 21:38:00) [2]"так пишутся некоторые чаты"
Так это проблема клиента. Клиент с периодичностью, заданной сервером, начинает опрос сервера. Сервер по запросу клиента посылает данные. Либо обновленные, либо прежние.
Главное, что сервер в любом случаепосылает данные.