Страница 1 из 3
Непрерывный контекст в чате
Добавлено: 14 апр 2005, 18:04
IUnknown
Все только говорят мне кругом, что это делается на джабе, но никто не дает пример! У кого есть пример непрерывной загрузки сообщений с сервера, дайте пожайлуста. Если можно, то что-бы код не зависел от браузера и желательно учитывал наличие демона который и высылает сообщения. Заранее благодарен

Добавлено: 14 апр 2005, 20:12
Kolinus
а задачу четко сформулировать ???
че-то ничего не понял из сообщения
Добавлено: 14 апр 2005, 21:42
IUnknown
Мне нужно что-бы в окно чата данные загружались без обновления окна (добавлялись в конец существующих). Доспустим у юзера в окне есть уже какие-то сообщения, если кто-то из других юзеров написал сообщение, то у того сразу же оно появилось в окне браузера, при этом оставив уже существующие сообщения.
Добавлено: 15 апр 2005, 15:56
Deady
имеется ввиду, что у клиента будет апплет, а не html фреймы.
через фреймы такое НАВЕРНО можно сделать путем махинации с JavaScript.
пишешь апплет, принцип его работы такой же, как и у обычного чата: запрашивать БД через определенные интервалы. Только аплет будет например получать только новые сообщения и добавлять их к списку имеющихся уже у него.
Добавлено: 15 апр 2005, 19:31
Kolinus
в принципе, если подкорректировать политики, то можно создать и прямое соединение точка-точка и получать данные в реальном времени.
в общем - смотри на апплеты.
будут конкретные вопросы - пиши
Добавлено: 17 апр 2005, 11:37
Deady
можно сделать невидимый фрейм, который будет получать порцию новых сообщений. этот фрейм должен обновляться каждый например 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 не знаю, написал все условно

Добавлено: 17 апр 2005, 13:18
IUnknown
А вообще без джабы такое реально реализовать на php или python например? А вот насчет прямого соединения - можете расказать поподробней как это сделать?
Добавлено: 17 апр 2005, 13:20
IUnknown
А что значит hardcoded?
Добавлено: 17 апр 2005, 13:42
Oscar
IUnknown,
Без Java это реализовать реально, поскольку подобных чатов полно.
Насчет прямого соединения (это через Java-applet), тебе прийдётся просить каждого пользователя понизить безопасность при просмотре твоей страницы (я бы не согласился это делать, если я о твоём чате ничего не знаю).
hardcoded, предполагаю, что имелось ввиду, что html/js текст для фрейма должен создаваться серверным языком программирования (из БД, или файлов, в зависимости от реализации) и в результате в фрейме, в ф-ции update уже сразу должен быть нужный текст.
Добавлено: 17 апр 2005, 16:05
Deady
Oscar писал(а):hardcoded, предполагаю, что имелось ввиду, что html/js текст для фрейма должен создаваться серверным языком программирования (из БД, или файлов, в зависимости от реализации) и в результате в фрейме, в ф-ции update уже сразу должен быть нужный текст.
именно это и имелось ввиду.
серверный скрипт можно писать хоть на java, хоть
IUnknown писал(а):на php или python