информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetSpanning Tree Protocol: недокументированное применениеСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Странный вопрос - конечно, можно. Но тут товарищ просит серверные скрипты, насколько я понял. 26.09.03 04:12  Число просмотров: 1326
Автор: Ktirf <Æ Rusakov> Статус: Elderman
Отредактировано 26.09.03 04:22  Количество правок: 1
<"чистая" ссылка>
<programming>
[Perl] Чат без перезагрузки фреймов 26.09.03 02:19  
Автор: Overlord [AHT] Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Народ, подскажите пожалуйста, как создать нормальный чат на Perl'е без перезагрузки фреймов, чтобы новые сообщения просто дописывались в окно сообщений, либо хотя бы чтобы сообщения обновлялись только при появлении новых? Проблем с хостером быть не должно, время использования скриптов не ограничено... Если кто знает - посоветуйте готовые скрипты такого рода, чтобы их можно было изучить, или просто посоветуйте, каким методом воспользоваться?
inside 26.09.03 02:54  
Автор: Eugene Статус: Незарегистрированный пользователь
<"чистая" ссылка>
перл к фреймам имеет довольно косвенное отношение.

следует различать клиентские и серверные технологии.

в любом случае - обращение к серверу должно быть, перегрузка чего-либо - тоже.

рекомендую обратиться к помощи литературы.
inside 26.09.03 03:14  
Автор: Overlord [AHT] Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> перл к фреймам имеет довольно косвенное отношение.
> следует различать клиентские и серверные технологии.
Я довольно неплохо разбираюсь в Perl'е и не путаю технологии. Вопрос был такой: как написать на Perl'е что-то типа daemon'а, который загружается один раз, а в дальнейшем просто отслеживает появление новых сообщений и пересылает их посетителю по мере поступления?

> в любом случае - обращение к серверу должно быть,
Это сомнений не вызывает :)

> перегрузка чего-либо - тоже.
А вот это вызывает...

> рекомендую обратиться к помощи литературы.
Я и задал вопрос, кто какую литературу посоветует...
Литературу не посоветую, разве что стандарт HTTP перечитай... 26.09.03 04:20  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка>
> > перл к фреймам имеет довольно косвенное отношение.
> > следует различать клиентские и серверные технологии.
> Я довольно неплохо разбираюсь в Perl'е и не путаю
> технологии. Вопрос был такой: как написать на Perl'е что-то
> типа daemon'а, который загружается один раз, а в дальнейшем
> просто отслеживает появление новых сообщений и пересылает
> их посетителю по мере поступления?
Демона не демона, но держать постоянно процесс в памяти, а не загружать его каждый раз новый, вполне реально (смотрим в сторону, например, FastCGI). Только это тебе не поможет. Смотри ниже.

> > перегрузка чего-либо - тоже.
> А вот это вызывает...
Не может браузер постоянно держать открытое соединение через HTTP, он для этого не предназначен. HTTP - Pull-протокол. Следовательно, придется тебе на клиентской стороне время от времени дергать браузер, чтобы он шел на сервер за очередной порцией. А дальше эту порцию надо куда-то залить (правильно, в браузер, потому что именно он отправил HTTP-запрос). А теперь угадай, в какое место залитую порцию браузер может положить. Только срендерить HTML (или смотря что там пришло) в какой-нить фрейм. Ну и все, приехали.
Можно, конечно, нарисовать на клиентской стороне ActiveX или Java-апплет, но... ну в общем все всё поняли.
Пример 26.09.03 05:27  
Автор: Overlord [AHT] Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Я хотел бы сделать чат по типу http://clayser.com.ru/cgi-bin/chat/chat.pl (только не по дизайну, а по идее :) ). Вот интересно, как они там это реализовали? Фрейм сообщений не обновляется, они просто дописываются в конец страницы...
Есть такая возможность 26.09.03 09:22  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка>
Один мой знакомый наваял такое на JSP. Уверен что на перле это тоже возможно. Суть в том что ты не закрываешь сокет, а понемногу отдаешь данные в поток. То есть выглядит это так:

У клиента.
1. Фрейм в котором постоянно открыт сокет.
2. фрейм в котором ты пишешь реплику и отсылаешь на сервак.
У сервера.
1. ЦГИха которая получает реплику и сует её в базюку (файл)
2. ЦГИха которая незакрывая_сокети соответсвенно не выходя регулярно (или по каким-то семафорам) опрашивает базюку и получив новые реплики кидает их в stdout.

Проблемсы:
На браузере IE4.x замечалось обрывание этого соединения при каком-то таймауте. Лечилось регулярной посылкой <!-- PING --> . На экране ничего не отображалось, а браузер не дох.
Все, больше проблемсов не было.
[Perl] Re: Есть такая возможность 26.09.03 14:15  
Автор: Overlord [AHT] Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Если можно, расскажи подробнее про этот вариант. Так вроде все понятно, но с чего за это взяться? Идеальным примером был бы небольшой фрагмент кода на perl'е.
[Perl] Перла не помню 26.09.03 14:44  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка>
...вот тебе на шелле код. Захочешь - спортируешь.
> Если можно, расскажи подробнее про этот вариант. Так вроде
> все понятно, но с чего за это взяться? Идеальным примером
> был бы небольшой фрагмент кода на perl'е.

#!/bin/sh
#

echo "Content-type:text/html"
echo ; echo
echo "<html><body><h3>Welcome to super-duper megachat</h3><hr>"

while :
do
  if [ -f logout.dat ] ;then exit;fi
  if [ -f message.txt ] ;then
    echo "<br>"
    cat message.txt
  fi
  sleep 1
done

---

Создашь файлик logout.dat в каталоге со скриптом - он прекратит работу, создашь файлик mesage.txt - он его содержимое выдаст чаттеру. И все без рефрешей :)
отвалишься по таймауту. не сервер, так браузер отбросит. 29.09.03 01:23  
Автор: Eugene Статус: Незарегистрированный пользователь
<"чистая" ссылка>
главное - не ясно как к этому подходу отнесется когда-нибудь какой-нибудь IE9.0 и тп.
Чтоб не отвалиться можно периодически пинги слать 29.09.03 08:28  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> главное - не ясно как к этому подходу отнесется
> когда-нибудь какой-нибудь IE9.0 и тп.
Примерно в следующем виде:

<!-- PING -->

Типа данные продолжают поступать, нет причин отваливаться.

Вот только одно не радует. Ну уж очень будет расти сама html-ка. Надо обязательно предусмотреть полный релоад через некоторый промежуток времени (минут 20 хотя бы: 3 релоада в час не сильно напрягут по трафику ИМХО, хотя можно и реже).
Хм, да, извиняюсь, про такой ход забыл. 26.09.03 13:02  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка>
Но этот вариант не дает делать какие-либо настройки внешнего вида чата "на лету". Либо опять же перегружать фрейм.
[Perl] Есть еще вот такая возможность.. 26.09.03 12:58  
Автор: trent Статус: Незарегистрированный пользователь
<"чистая" ссылка>
делается фрейм нулевой геометрии, он каждый раз обновляется, в нем строится JS, который вставляет содержимое в видимый фрейм. Этот вариант гибче, т.к позволяет изменять порядок вывода сообщений(
например: снизу-вверх сверху-вниз).
[Perl] Эээ... 26.09.03 14:46  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка>
> делается фрейм нулевой геометрии, он каждый раз
> обновляется,
Стоп. Я так понял что наша цель это чатбезобновлений.
[Perl] imho 26.09.03 18:56  
Автор: hamstr Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Стоп. Я так понял что наша цель это чатбезобновлений.
незакрывать соеденение конечно можно. получится что фрейм грузится бесконечно.
только что скажет хостер на такое количество одновременно открытых коннектов к серверу.
лично мне больше по душе вариант с javascript который предлагает trent.
как-то он изящней выглядит. да и в примере сделано именно так....
жаль только не работает в мозиле :)))))
а на [Perl] можно написать irc клиента? 26.09.03 02:50  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
Странный вопрос - конечно, можно. Но тут товарищ просит серверные скрипты, насколько я понял. 26.09.03 04:12  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
Отредактировано 26.09.03 04:22  Количество правок: 1
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach