![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Мне тут вот стало непонятно, почему вообще пишут чаты на PHP ??? Это ведь очень большую нагрузку создается.
На Яве можно легко и быстро создать Servlet, который бы висел в памяти и все сообщения также в памяти хранил бы. |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
Вопрос даже шире. Почему вообще веб - приложения на ПХП пишуться?
Ответ у меня в голову пришёл типа такого: память на сервере конечно хорошо использовать, но только, если там не хостинг на несколько сотен/тысяч юзеров. там лучше диск юзать. Дешевле, а скорость роли большой не играет, ведь люди с реальными пректами сами позаботятся о сервере. Так же на яве можно легко сделать new byte[очень_большое_число]; и забрать себе всю память ![]() Потом ПХП всё ещё намного легче как язык программирования, да и что говорить, с кодировами и БД разбираться много не надо. В яве нужны навыки и настройка по типу "один раз и навсегда". Всё же это похоже на религиозные войны Ява против ПХП. Где то у нас уже велись они ![]() По сабжу - чат на яве конечно реактивная альтернатива, практически не напрягающая сервер (Это при условии, что сохранять сообщения не надо на диск, инача оба решения примерно одинаковы) |
|||
|
||||
Nobody |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 25.8.2003 Где: Россия, Москва Репутация: 1 Всего: 16 |
Потому что очень мало хостингов где есть ява. А выделенный сервер не все могут себе позволить.
-------------------- |
|||
|
||||
Tirael |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 31.1.2006 Где: Москва Репутация: 1 Всего: 7 |
Wowa, расскажи поподробнее про создание чатов на Ява с использованием Servlet и JSP.
Я искал исходники и инфу про создание чатов на Java. Практически везде описываются чаты на основе Сокетов и Аплетов. Нашел только пару на Servlets и JSP. Но нет никакого документации по их созданию. Только исходники. Сижу копаюсь, перенимая ошибки автора и пытаясь понять что же он имел ввиду. Хотелось бы услышать сообественно как следовало бы строить чат на основе Servet'ов и JSP. Саму теорию. В общих чертах. --------------------
|
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
Э... надо уж определится servlet или JSP ![]() Чат на сервлете превращается в задачу на пару строк. так что там естесвенно никаких теорий искать нечего. Последние X сообщений хранятся в памяти. Там достаточно List взять и указателем ходить по нему, возвращаясь от последнего к первому. Пришло новое сообщение? добавь узел в list на место указателя, а старый узел выкинь и передвинь указатель дальше. Пришёл запрос на распечатку? иди вторым указателем от первого назад до полного круга. Если с XMLHttpRequest, то вообще - отдавай узел, на котором указатель стоит и все узлы, которых у юзера ещё не было (определяешь по запросу). Дай ссылок на коды, помотреть, что там народ повыдумывал ![]() |
|||
|
||||
Nobody |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 25.8.2003 Где: Россия, Москва Репутация: 1 Всего: 16 |
-------------------- |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
Чтото они там со скриптом перемудрили!
|
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
||||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
JS всмысле
|
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
||||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
Вон, смотри, сколько там скрипта
http://demo.nextapp.com/ChatClient/app?ser...ho.ClientEngine Интересно, сколько кода там реально нужно ![]() |
|||
|
||||
Tirael |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 31.1.2006 Где: Москва Репутация: 1 Всего: 7 |
sergej.z, ну например пытаюсь разобраться вот в этом чате: http://www.web-tech-india.com/software/jsp_chat.php
Но он как-то криво кажись построен. Например, ты сидишь и жмешь Refresh, либо вся страница обновляется целиком через 5 секнуд ( по умолчанию). Зачем сделанно это обновление? Например, когда я разбирал чат, написанный на аплетах, то там было сделанно несколько по-другому: отправляет сообщение, на серверной стороне оно получается и тут же рассылается всем пользователям, которые подсоединены в данный момент. Так вот как реализовать такой же принцип, но уже с использовнием сервлетов? --------------------
|
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
||||
|
||||
sergejzr |
|
||||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
Ты не можешь апплет заменить сервлетом ![]() Чат на апплете - вообще немного другая история. Конечно в плане трафа и скорости он оптимален. С другой стороны не у всех ява установлена. Да и ресурсы апплеты едят (хотя тут кривизна браузеров играет роль) Лучший вариант - явяскрипт с использованием XMLHTTPRequest. Экономим рессурсы на клиенте и сервере. Минимум передаваемого трафа, максимум скорости. Я бы делал такую связку явяскрипт-сервлет.
Там возможно реализовать типа: Клиент запросил инфу у сервера и ждёт ответа. Сервер отвечает только когда новые сообщения есть, а всё это время клиент "висит" в ожидании. Я так делал. Правда это были обе ява проги. В принципе апплет - сервлет - тоже самое. Не знаю, как съест это XMLHTTPRequest и не вылетит ли по ConnectionTimeOut. |
||||
|
|||||
Nobody |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 25.8.2003 Где: Россия, Москва Репутация: 1 Всего: 16 |
Хех. Я делал так. Клиент открывает (в невидимом фрейме) коннект к серверу, сервер в него пишет новые поступающие сообщения и не закрывает соединение. Получам односторонний бесконечный коннект, через который сервер может слать все JS-команды.
-------------------- |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |