Здравствуйте, Sinclair, Вы писали:
S>Ну есть один способ — вечно открытое соединение. Это в некотором смысле противоречит духу протокола HTTP/1.1, но работает. При условии того, что клиентский джаваскрипт достаточно умен для рестарта вечно открытого соединения при его обрыве. А также с учетом того, что количество одновременно открытых сокетов у сервера ограничено.
Да, принцип может быть таким: скрипт в цикле пишет в Output-поток с отключенной буферизацией, в конце каждого цикла делается принудительный flush. Для того, чтобы броузер клиента не сдох, скрипт через каждые N итераций заставляет броузер клиента переобновить страницу при помощи JavaScript или просто посылает заголовок refresh.
response.write("<html><head><meta http-equiv="refresh" content="1000; URL=index.jsp></head>");
for (int i = 0; i < 1000; i++)
{
response.write("<h1>" + i + "</h1>");
response.flush();
sleep(1000);
}
На таком принципе работают некоторые чаты.