Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Arkhipov Dmitriy                     2:5020/400     26 Oct 2001  12:43:26
 To : Dmitriy Pushkarev
 Subject : Re: Chat
 -------------------------------------------------------------------------------- 
 
 
   День добрый, Dmitriy Pushkarev!
 
 DP>  s> Видел тут на http://chat.talk.ru чат, возник вопрос как он сделан? То
 DP>  s> есть как только посылаешь сообщение оно тут же появляется на экране.
 DP>  s> Это не Ява. Вопрос такой, а как можно на перле реализовать подобный
 DP>  s> механизм? Может через сокеты? Или это не правильно? Вообще есть
 DP>  s> какие-то способы организовать чат на перле ( или неперле ) кроме как
 DP>  s> банальных ?
 DP> Используется, так называемый непрерывный html. Т.е. всю сессию пользователь
 DP> укачивает один файл. А сервер всю сессию его отдает, и как получает новое
 DP> сообщение во все передаточные сокеты дописывает мессагу.
 DP> Более научное название Server-Push.
 
   Точнее поточный HTML.
   
   В книжке "PHP4 Разработка Web-приложений" мельком упоминается:
 
   ...Эта технология никем не поддерживается официально, но тем не менее
 прекрасно работает. Сценарий интерфейсного вывода находится в ожидании в
 бесконечном цикле и не заканчивает передачу HTML-страницы, которую получает
 броузер. Информация, которую надо послать пользователю, выводится на экран
 и немедленно удаляется из буфера сервера. Таким образом, броузер при этом
 постоянно работает на вывод обновляемой информации и всегда выводит самые
 последние данные. Однако такой подход влечет за собой одну проблему ч
 сложные объекты HTML при этом невозможно интерпретировать в процессе
 работы, Ина летуК. Hапример, строки таблицы нельзя выводить по одной,
 потому что броузер должен получить все строки и столбцы таблицы, чтобы
 определить ее окончательный размер. Все хорошо работает, пока вы
 ограничиваетесь последовательным выводом текстовых строк и используете
 таблицы, которые можно вывести на экран сразу.
   Поточный HTML обладает одним свойством, которое можно считать и
 достоинством, и недостатком: поскольку соединение с клиентом остается
 открытым, постоянно должен существовать процесс сервера, который его
 обрабатывает. Это означает, что каждый клиент требует, чтобы, по крайней
 мере, один процесс сервера работал только с ним. Преимущество такого
 подхода заключается в том, что не нужно поддерживать никаких данных,
 связанных с конкретным обращением, то есть сеансом работы пользователя с
 данной страницей. Обычно, когда клиент запрашивает документ, должен
 порождаться новый процесс; необходимо загрузить, проанализировать и
 выполнить сценарий, генерирующий документ. Поскольку при использовании
 поточного HTML процесс сервера постоянно остается в памяти, загрузка
 сценария и его интерпретация должны осуществляться для каждого клиента
 только один раз. Для сайтов, которые в противном случае обрабатывали бы
 сотни обращений в секунду, это несомненное преимущество. Однако при этом
 каждый процесс остается в памяти резидентным и ему требуется оперативная
 память...
 
 А реализуется на PHP это гораздо проще :)
 Hапример так:
 
 for ($i=0;$i<=100;$i++)
 {
   echo "Line $i<br>\n";
   flush();
   sleep(5);
 }
 
   С уважением,
   Архипов Дмитрий.
 -- 
 Отправлено через сервер Talk.Ru - http://www.talk.ru
 --- ifmail v.2.15dev5
  * Origin: State Marine Technical University of St. Petersburg - w (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Chat   Turuntcev V.V.   16 Oct 2001 11:19:42 
 Re: Chat   vitus@ice.ru   16 Oct 2001 13:45:44 
 Chat   Dmitriy Pushkarev   25 Oct 2001 22:06:38 
 Re: Chat   Arkhipov Dmitriy   26 Oct 2001 12:43:26 
 Re: Chat   Sonic   27 Oct 2001 14:22:12 
 Re: Chat   Artem Chuprina   29 Oct 2001 17:10:30 
 Re: Chat   Sonic   30 Oct 2001 14:32:51 
 Re: Chat   Sonic   30 Oct 2001 14:32:52 
 Re: Chat   Sonic   30 Oct 2001 20:24:33 
 Re: Chat   Sonic   01 Nov 2001 14:57:26 
Архивное /ru.cgi.perl/214834c20fdd.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional