Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Чат без обновления на Perl


Автор: Дмитрий 7.7.2003, 05:45
Люди добрые обьясните человеку без знания Явы, как сделать чат без обнавления?

Как будут добавляться новые сообщения? Ведь обновления всёравно будут (в невидимом фрейме).

А как заставлять мой Perl скрипт высылаь усеру в нневидимый фейм именно новые сообщения?

Только не надо с использованием Flash.

Автор: NightGoblin 7.7.2003, 06:49
Для начала объясни, что ты подразумеваешь под "обновлениями" и о каких невидимых фреймах идет речь?...

Вдогонку - если я правильно понял, для создания стримового HTML-ного чата не нужен ни флеш, ни ява - достаточно HTML и JavaScript...

Автор: HalkaR 7.7.2003, 11:38
Также не плохо знать Perl. Тогда можно делать уже совсем не плохой чат. Если не знаешь javascript, то без обновлений фрейма ничо не получится.

Автор: Wowa 7.7.2003, 22:09
Нужно держать постоянно сессию активной, тогда все возможно.

Автор: HalkaR 7.7.2003, 22:14
А отбражать новые сообщения как?

Автор: Дмитрий 8.7.2003, 03:55
HalkaR сообщения должны добовляться в конец документа и документ должен прокручиваться.

Admin а как это реализовать. Тоесть постоянно бокумент грузится? Мне надругом форме сказали что это невозможно.

HalkaR Perl знаю на отлично.

NightGoblin ДА! ДА! Мне это и нужно но какова технология. Нельзя ли поподробнее (с кодом). Ужасно надо. Я открываю сервис бесплатных чатов а мне говорят сначала такой чат сделать, что бы не раззоряться на трафик.

Не могли бы кто нибудь мне написать

Автор: NightGoblin 8.7.2003, 07:21
Да технология-то несложная... У меня есть такой чат, правда через CGI, и за неоптимальностью я его больше не разрабатываю... Если в общем - в том фрейме, где новые сообщения, держится соединение (т. е., сервер не посылает Content-Length и держит коннект, а клиент будет висеть сам), при каждом новом сообщении оно высылается клиенту, а после него коротенький скрипт для прокрутки фрейма:
Код

<script language="JavaScript">
   window.scrollBy (1, 131072);
</script>

естественно, 131072 взято с запасом smile.gif Плюс, не реже чем, например, раз в минуту надо что-то посылать (<!-- ping -->), иначе коннект разорвется.
Самое сложное в такой схеме - обеспечить взаимодействие между процессами, обслуживающими клиентов, в этом же заключается еще одна проблема - если клиентов будет очень много, система будет загружена большим количеством процессов... А способов много - можно запустить демон, который будет получать сообщения и рассылать всем, можно и без него обойтись... Тут лучше почитать man-страничку perlipc(1).

PS А зачем и в какое место понадобился невидимый фрейм?...

Автор: Unregistered 9.7.2003, 03:42
NightGoblin очень интересное сообщнеие СПАСИБО.
Только мне нужна практика (код).

Мог бы выслать скрипты своего чата?

А на счёт PS: это я так начитался говна всякого что в невидимом фрейме должна обновляться страница которая будет добовлять новые сообщения в основной фрейм. Вот так вот.

Автор: NightGoblin 11.7.2003, 08:07
2Дмтрий

Хм... так ты написать хочешь или уже готовый проект взять?... Если первое - лучше смотри мануалы и прочее - пару базовых примеров могу подкинуть, а весь код лучше не брать - запутаешься smile.gif А если второе - то, увы, не ко мне - там еще все настолько сыро, что и показывать-то обломно =)

Автор: Дмитрий 17.7.2003, 05:36
Здравствуйте.

Я ищу чатбез обновления. Написал цыклический скрипт отображения сообщений.
А он пока все сообщения не найдёт не показывает страницу.

Вот мой вопрос:
Как сделать так что бы страница отображалать постоянно. И подгружалась постояноо. Тоесть не пока скрипт выполнится а в процессе выполнения дайте пожалуйста код.

Автор: Unregistered 17.7.2003, 05:38
NightGoblin вот как сделать что бы скрипт постепенно выдовал инфу?
А то он у меня гад (ползучий само собой)только весь скрипт плюёт после полного выполнения()смотри собщение выше).

Автор: Asan 19.7.2003, 16:30
Скачай скрипт Ральф Чата там реализована такая возможность strimштп Нплохо работает ralfchat.com

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)