Непрерывный контекст в чате

Модератор: Absurd

IUnknown
Сообщения: 16
Зарегистрирован: 14 апр 2005, 17:54

Все только говорят мне кругом, что это делается на джабе, но никто не дает пример! У кого есть пример непрерывной загрузки сообщений с сервера, дайте пожайлуста. Если можно, то что-бы код не зависел от браузера и желательно учитывал наличие демона который и высылает сообщения. Заранее благодарен :)
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

а задачу четко сформулировать ???
че-то ничего не понял из сообщения
В SAD - все в SAD.
IUnknown
Сообщения: 16
Зарегистрирован: 14 апр 2005, 17:54

Мне нужно что-бы в окно чата данные загружались без обновления окна (добавлялись в конец существующих). Доспустим у юзера в окне есть уже какие-то сообщения, если кто-то из других юзеров написал сообщение, то у того сразу же оно появилось в окне браузера, при этом оставив уже существующие сообщения.
Deady
Сообщения: 193
Зарегистрирован: 17 фев 2004, 13:13
Откуда: Москва
Контактная информация:

имеется ввиду, что у клиента будет апплет, а не html фреймы.
через фреймы такое НАВЕРНО можно сделать путем махинации с JavaScript.
пишешь апплет, принцип его работы такой же, как и у обычного чата: запрашивать БД через определенные интервалы. Только аплет будет например получать только новые сообщения и добавлять их к списку имеющихся уже у него.
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

в принципе, если подкорректировать политики, то можно создать и прямое соединение точка-точка и получать данные в реальном времени.
в общем - смотри на апплеты.
будут конкретные вопросы - пиши
В SAD - все в SAD.
Deady
Сообщения: 193
Зарегистрирован: 17 фев 2004, 13:13
Откуда: Москва
Контактная информация:

можно сделать невидимый фрейм, который будет получать порцию новых сообщений. этот фрейм должен обновляться каждый например 5 сек.
в свойство onLoad() сделать ему функцию, которая будет находить во фрейме с сообщениями определенное место и вставлять в него сообщения.
то есть типа такого:

фрейм с сообщениями

Код: Выделить всё

<html>
...
<div id='messagelist'>
   <div id='message001'>
   ...
   </div>
   <div id='newmessage'>
   </div>
</div>
...
</html>
фрейм, получающий сообщения:

Код: Выделить всё

<html>
<meta... refresh='5'>
...
<body onload='update()'>
...
<script...>
function update() {
    document.findFrame("messages").replace("<div id='newmessage'></div>", "<div id='message059'>...</div><div id='newmessage'></div>");
}
</script>
...
</html>
где аргументы для replace делать hardcoded.
то есть фрейм обновляется, вставляет очередную порцию сообщений в чат.

так как javascript не знаю, написал все условно :)
IUnknown
Сообщения: 16
Зарегистрирован: 14 апр 2005, 17:54

А вообще без джабы такое реально реализовать на php или python например? А вот насчет прямого соединения - можете расказать поподробней как это сделать?
IUnknown
Сообщения: 16
Зарегистрирован: 14 апр 2005, 17:54

А что значит hardcoded?
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

IUnknown,
Без Java это реализовать реально, поскольку подобных чатов полно.
Насчет прямого соединения (это через Java-applet), тебе прийдётся просить каждого пользователя понизить безопасность при просмотре твоей страницы (я бы не согласился это делать, если я о твоём чате ничего не знаю).

hardcoded, предполагаю, что имелось ввиду, что html/js текст для фрейма должен создаваться серверным языком программирования (из БД, или файлов, в зависимости от реализации) и в результате в фрейме, в ф-ции update уже сразу должен быть нужный текст.
Deady
Сообщения: 193
Зарегистрирован: 17 фев 2004, 13:13
Откуда: Москва
Контактная информация:

Oscar писал(а):hardcoded, предполагаю, что имелось ввиду, что html/js текст для фрейма должен создаваться серверным языком программирования (из БД, или файлов, в зависимости от реализации) и в результате в фрейме, в ф-ции update уже сразу должен быть нужный текст.
именно это и имелось ввиду.


серверный скрипт можно писать хоть на java, хоть
IUnknown писал(а):на php или python
Ответить