Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Интернет-чат на Ява. Очень легко. Почему некоторые на ПХП его пишут??? 
:(
    Опции темы
Wowa
Дата 6.2.2006, 02:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Мне тут вот стало непонятно, почему вообще пишут чаты на PHP ??? Это ведь очень большую нагрузку создается.

На Яве можно легко и быстро создать Servlet, который бы висел в памяти и все сообщения также в памяти хранил бы.

PM WWW   Вверх
sergejzr
Дата 6.2.2006, 03:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 2
Всего: 360



Вопрос даже шире. Почему вообще веб - приложения на ПХП пишуться?
Ответ у меня в голову пришёл типа такого:
память на сервере конечно хорошо использовать, но только, если там не хостинг на несколько сотен/тысяч юзеров. там лучше диск юзать. Дешевле, а скорость роли большой не играет, ведь люди с реальными пректами сами позаботятся о сервере.
Так же на яве можно легко сделать new byte[очень_большое_число]; и забрать себе всю память smile

Потом ПХП всё ещё намного легче как язык программирования, да и что говорить, с кодировами и БД разбираться много не надо. В яве нужны навыки и настройка по типу "один раз и навсегда".

Всё же это похоже на религиозные войны Ява против ПХП. Где то у нас уже велись они smile

По сабжу - чат на яве конечно реактивная альтернатива, практически не напрягающая сервер (Это при условии, что сохранять сообщения не надо на диск, инача оба решения примерно одинаковы)


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Nobody
Дата 6.2.2006, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 25.8.2003
Где: Россия, Москва

Репутация: 1
Всего: 16



Потому что очень мало хостингов где есть ява. А выделенный сервер не все могут себе позволить.


--------------------
Алгоритм помещения вопросов на форуме
Выражаем спасибо вот ТАК
Use the Source, Luke!
PM MAIL WWW ICQ   Вверх
Tirael
Дата 6.2.2006, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 31.1.2006
Где: Москва

Репутация: 1
Всего: 7



Wowa, расскажи поподробнее про создание чатов на Ява с использованием Servlet и JSP.
Я искал исходники и инфу про создание чатов на Java. Практически везде описываются чаты на основе Сокетов и Аплетов.
Нашел только пару на Servlets и JSP. Но нет никакого документации по их созданию. Только исходники. Сижу копаюсь, перенимая ошибки автора и пытаясь понять что же он имел ввиду.

Хотелось бы услышать сообественно как следовало бы строить чат на основе Servet'ов и JSP. Саму теорию. В общих чертах.

--------------------
 
PM MAIL   Вверх
sergejzr
Дата 6.2.2006, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 2
Всего: 360



Цитата(Tirael @ 6.2.2006, 19:09 Найти цитируемый пост)

Хотелось бы услышать сообественно как следовало бы строить чат на основе Servet'ов и JSP. Саму теорию. В общих чертах.

Э... надо уж определится servlet или JSP smile
Чат на сервлете превращается в задачу на пару строк. так что там естесвенно никаких теорий искать нечего. Последние X сообщений хранятся в памяти. Там достаточно List взять и указателем ходить по нему, возвращаясь от последнего к первому. Пришло новое сообщение? добавь узел в list на место указателя, а старый узел выкинь и передвинь указатель дальше. Пришёл запрос на распечатку? иди вторым указателем от первого назад до полного круга.

Если с XMLHttpRequest, то вообще - отдавай узел, на котором указатель стоит и все узлы, которых у юзера ещё не было (определяешь по запросу).

Дай ссылок на коды, помотреть, что там народ повыдумывал smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Nobody
Дата 6.2.2006, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 25.8.2003
Где: Россия, Москва

Репутация: 1
Всего: 16





--------------------
Алгоритм помещения вопросов на форуме
Выражаем спасибо вот ТАК
Use the Source, Luke!
PM MAIL WWW ICQ   Вверх
sergejzr
Дата 6.2.2006, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 2
Всего: 360



Чтото они там со скриптом перемудрили!


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Wowa
Дата 6.2.2006, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(sergej.z @ 6.2.2006, 21:43 Найти цитируемый пост)

Чтото они там со скриптом перемудрили!

почему? smile За счет чего он может комп грузить? smile
PM WWW   Вверх
sergejzr
Дата 6.2.2006, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 2
Всего: 360



JS всмысле


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Wowa
Дата 6.2.2006, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(sergej.z @ 6.2.2006, 21:44 Найти цитируемый пост)

JS всмысле

А, наверное..
PM WWW   Вверх
sergejzr
Дата 6.2.2006, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 2
Всего: 360



Вон, смотри, сколько там скрипта
http://demo.nextapp.com/ChatClient/app?ser...ho.ClientEngine
Интересно, сколько кода там реально нужно smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Tirael
Дата 7.2.2006, 03:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 31.1.2006
Где: Москва

Репутация: 1
Всего: 7



sergej.z, ну например пытаюсь разобраться вот в этом чате: http://www.web-tech-india.com/software/jsp_chat.php

Но он как-то криво кажись построен. Например, ты сидишь и жмешь Refresh, либо вся страница обновляется целиком через 5 секнуд ( по умолчанию). Зачем сделанно это обновление? Например, когда я разбирал чат, написанный на аплетах, то там было сделанно несколько по-другому: отправляет сообщение, на серверной стороне оно получается и тут же рассылается всем пользователям, которые подсоединены в данный момент.

Так вот как реализовать такой же принцип, но уже с использовнием сервлетов?

--------------------
 
PM MAIL   Вверх
Wowa
Дата 7.2.2006, 03:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(Tirael @ 7.2.2006, 01:50 Найти цитируемый пост)

отправляет сообщение, на серверной стороне оно получается и тут же рассылается всем пользователям

я думаю, что просто пользователи регулярно запрашивают новые сообщение сами, а не сервер их отсылает.
PM WWW   Вверх
sergejzr
Дата 7.2.2006, 04:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 2
Всего: 360



Цитата(Tirael @ 7.2.2006, 01:50 Найти цитируемый пост)

Так вот как реализовать такой же принцип, но уже с использовнием сервлетов?

Ты не можешь апплет заменить сервлетом smile это же две разные вещи.
Чат на апплете - вообще немного другая история. Конечно в плане трафа и скорости он оптимален. С другой стороны не у всех ява установлена. Да и ресурсы апплеты едят (хотя тут кривизна браузеров играет роль)
Лучший вариант - явяскрипт с использованием XMLHTTPRequest. Экономим рессурсы на клиенте и сервере. Минимум передаваемого трафа, максимум скорости.

Я бы делал такую связку явяскрипт-сервлет.

Цитата(Wowa @ 7.2.2006, 01:57 Найти цитируемый пост)

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

Там возможно реализовать типа: Клиент запросил инфу у сервера и ждёт ответа. Сервер отвечает только когда новые сообщения есть, а всё это время клиент "висит" в ожидании. Я так делал. Правда это были обе ява проги. В принципе апплет - сервлет - тоже самое.
Не знаю, как съест это XMLHTTPRequest и не вылетит ли по ConnectionTimeOut.





--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Nobody
Дата 7.2.2006, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 25.8.2003
Где: Россия, Москва

Репутация: 1
Всего: 16



Хех. Я делал так. Клиент открывает (в невидимом фрейме) коннект к серверу, сервер в него пишет новые поступающие сообщения и не закрывает соединение. Получам односторонний бесконечный коннект, через который сервер может слать все JS-команды.


--------------------
Алгоритм помещения вопросов на форуме
Выражаем спасибо вот ТАК
Use the Source, Luke!
PM MAIL WWW ICQ   Вверх
Tirael
Дата 7.2.2006, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 31.1.2006
Где: Москва

Репутация: 1
Всего: 7



Цитата(Wowa @ 7.2.2006, 03:57 Найти цитируемый пост)

Цитата(Tirael @ 7.2.2006, 01:50 )

отправляет сообщение, на серверной стороне оно получается и тут же рассылается всем пользователям


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

Ну по крайней мере здесь IBM Online courses: Building a Java Chat описывается именно такой механизм: на сервер приходит сообщение и тут же отправляется всем клиентам.

Цитата(sergej.z @ 7.2.2006, 04:15 Найти цитируемый пост)

Лучший вариант - явяскрипт с использованием XMLHTTPRequest. Экономим рессурсы на клиенте и сервере. Минимум передаваемого трафа, максимум скорости.

Возможно, но к сожалению smile я плохо знаком с JavaScrip'ом и никогда не использвал XMLHTTPRequest. Изучаю сейчас Servlets и JSP и хотел бы опробовать именно их "в бою".


Это сообщение отредактировал(а) Tirael - 7.2.2006, 14:57
--------------------
 
PM MAIL   Вверх
sergejzr
Дата 7.2.2006, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 2
Всего: 360



Цитата(Nobody @ 7.2.2006, 11:41 Найти цитируемый пост)

Хех. Я делал так. Клиент открывает (в невидимом фрейме) коннект к серверу, сервер в него пишет новые поступающие сообщения и не закрывает соединение. Получам односторонний бесконечный коннект, через который сервер может слать все JS-команды.


Да. И 100 -200 юзеров сервер вполне выдержит. Но тут надо конечно экцпериментальным путём определить, сколько соеденений сервер может держать.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Wowa
Дата 7.2.2006, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(sergej.z @ 7.2.2006, 12:55 Найти цитируемый пост)

Да. И 100 -200 юзеров сервер вполне выдержит. Но тут надо конечно экцпериментальным путём определить, сколько соеденений сервер может держать.

Это если они постоянно подсоединены? А если через ява-скрипт и HTTPrequest?
PM WWW   Вверх
sergejzr
Дата 7.2.2006, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 2
Всего: 360



Цитата(Wowa @ 7.2.2006, 12:56 Найти цитируемый пост)

Это если они постоянно подсоединены?

Ага
Цитата(Wowa @ 7.2.2006, 12:56 Найти цитируемый пост)

А если через ява-скрипт и HTTPrequest?

Ну там стандартный механизм. Через определённые промежутки времени север опрашивается на наличие новых сообщений.

Преимущества и недостатки имеют обе архитектуры. Тут надо эксперименты ставить...

А вообще - лучше аськи чата нет smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Tirael
Дата 7.2.2006, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 31.1.2006
Где: Москва

Репутация: 1
Всего: 7



Цитата(sergej.z @ 7.2.2006, 15:01 Найти цитируемый пост)

А вообще - лучше аськи чата нет

smile Что-то тема задумывалась, как обсуждение чата на Сервлетах. А в конце пришли к выводу, что надо пользоваться асей.
smile Кто-нибудь может дать краткое описание внутреннего устройства чата построенного на Сервлетах?? smile

Это сообщение отредактировал(а) Tirael - 7.2.2006, 15:13
--------------------
 
PM MAIL   Вверх
sergejzr
Дата 7.2.2006, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 2
Всего: 360



Цитата(sergej.z @ 6.2.2006, 19:19 Найти цитируемый пост)

Чат на сервлете превращается в задачу на пару строк. так что там естесвенно никаких теорий искать нечего. Последние X сообщений хранятся в памяти. Там достаточно List взять и указателем ходить по нему, возвращаясь от последнего к первому. Пришло новое сообщение? добавь узел в list на место указателя, а старый узел выкинь и передвинь указатель дальше. Пришёл запрос на распечатку? иди вторым указателем от первого назад до полного круга.

Если с XMLHttpRequest, то вообще - отдавай узел, на котором указатель стоит и все узлы, которых у юзера ещё не было (определяешь по запросу).

А это что?


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Tirael
Дата 7.2.2006, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 31.1.2006
Где: Москва

Репутация: 1
Всего: 7



Цитата(sergej.z @ 7.2.2006, 15:39)
Цитата(sergej.z @  6.2.2006,  19:19 Найти цитируемый пост)

Чат на сервлете превращается в задачу на пару строк. так что там естесвенно никаких теорий искать нечего. Последние X сообщений хранятся в памяти. Там достаточно List взять и указателем ходить по нему, возвращаясь от последнего к первому. Пришло новое сообщение? добавь узел в list на место указателя, а старый узел выкинь и передвинь указатель дальше. Пришёл запрос на распечатку? иди вторым указателем от первого назад до полного круга.

Если с XMLHttpRequest, то вообще - отдавай узел, на котором указатель стоит и все узлы, которых у юзера ещё не было (определяешь по запросу).

А это что?

smile Мало smile
--------------------
 
PM MAIL   Вверх
Opik
Дата 5.3.2006, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: нет
Всего: 55



Цитата(Tirael @ 7.2.2006, 02:50)
sergej.z, ну например пытаюсь разобраться вот в этом чате: http://www.web-tech-india.com/software/jsp_chat.php

Но он как-то криво кажись построен. Например, ты сидишь и жмешь Refresh, либо вся страница обновляется целиком через 5 секнуд ( по умолчанию). Зачем сделанно это обновление? Например, когда я разбирал чат, написанный на аплетах, то там было сделанно несколько по-другому: отправляет сообщение, на серверной стороне оно получается и тут же рассылается всем пользователям, которые подсоединены в данный момент.

Так вот как реализовать такой же принцип, но уже с использовнием сервлетов?

Супер чат, на памяти и всё такое.
Правда новые сообщения криво посылалаются, т.е просто обновляется окно. что не очень оптимально.
Да и обовляется он по таймауту. Я его переделывать начал, и вот что сделал:
1) Разделил на 4 фрейма (новый с юзерами, 1 невидимый)
2) Сообщения шлются через скрытый фрейм и скрипт ДОБАВЛЯЕТ только НОВЫЕ сообщения (через JS).
3) Исходя, из п2 понятно что добавил JS кода (приличное кол-во)
Вообщем получилось просто супер. Просто реактивно.
Сейчас дописываю регу. Так что чат с "потенциалом"... ) Очень благодарен за линк. Мне он очень жизнь облегчил!

PM MAIL Skype   Вверх
Wowa
Дата 5.3.2006, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(Opik @ 4.3.2006, 23:15 Найти цитируемый пост)
Вообщем получилось просто супер. Просто реактивно.

На ПХП чат был бы имхо не так изящно реализован и тормозил бы сильно. Расскажи, как твое мнение относительно чата на яве smile
PM WWW   Вверх
Opik
Дата 5.3.2006, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: нет
Всего: 55



Wowa,
ну я реализовывал чат на PHP, на таком же принципе работы.
Сейчас реализовал это на яве - небо и земля.
И если учесть, что это ещё и на винде сейчас.... то вообще нечего говорить.
PM MAIL Skype   Вверх
Tony
Дата 7.3.2006, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



я делал так .Делал connect na jsp tam 2 ifraima.Odin bil svazan s servletom Каторий при заходе засипал (Thread.sleep()- toest stranica v iframe ne dozagruzalas' ,visela)I response + id usera lozil v List.A vo 2 iframe bila forma peshesh tekst -->submit .Servlet obrabatival probigal po listu i otsilal vsem .T.k v pervom iframe nedozagruzka to --> on videl tekst.
======================================================================
Voobse kogda ja hotel napisat' 4at na jsp ni4ego tolkogova ne nashol.Poetomu i pridumal takoe.Pri4om 4at prekrasno rabotal .Compik 64RAM, CPU 400,OS WIN.


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1212 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.