Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java EE (J2EE) и Spring > Интернет-чат на Ява. Очень легко. |
Автор: Wowa 6.2.2006, 02:54 |
Мне тут вот стало непонятно, почему вообще пишут чаты на PHP ??? Это ведь очень большую нагрузку создается. На Яве можно легко и быстро создать Servlet, который бы висел в памяти и все сообщения также в памяти хранил бы. |
Автор: sergejzr 6.2.2006, 03:07 |
Вопрос даже шире. Почему вообще веб - приложения на ПХП пишуться? Ответ у меня в голову пришёл типа такого: память на сервере конечно хорошо использовать, но только, если там не хостинг на несколько сотен/тысяч юзеров. там лучше диск юзать. Дешевле, а скорость роли большой не играет, ведь люди с реальными пректами сами позаботятся о сервере. Так же на яве можно легко сделать new byte[очень_большое_число]; и забрать себе всю память ![]() Потом ПХП всё ещё намного легче как язык программирования, да и что говорить, с кодировами и БД разбираться много не надо. В яве нужны навыки и настройка по типу "один раз и навсегда". Всё же это похоже на религиозные войны Ява против ПХП. Где то у нас уже велись они ![]() По сабжу - чат на яве конечно реактивная альтернатива, практически не напрягающая сервер (Это при условии, что сохранять сообщения не надо на диск, инача оба решения примерно одинаковы) |
Автор: Nobody 6.2.2006, 17:18 |
Потому что очень мало хостингов где есть ява. А выделенный сервер не все могут себе позволить. |
Автор: Tirael 6.2.2006, 21:09 |
Wowa, расскажи поподробнее про создание чатов на Ява с использованием Servlet и JSP. Я искал исходники и инфу про создание чатов на Java. Практически везде описываются чаты на основе Сокетов и Аплетов. Нашел только пару на Servlets и JSP. Но нет никакого документации по их созданию. Только исходники. Сижу копаюсь, перенимая ошибки автора и пытаясь понять что же он имел ввиду. Хотелось бы услышать сообественно как следовало бы строить чат на основе Servet'ов и JSP. Саму теорию. В общих чертах. |
Автор: Nobody 6.2.2006, 23:23 |
http://demo.nextapp.com/ChatClient/app |
Автор: sergejzr 6.2.2006, 23:43 |
Чтото они там со скриптом перемудрили! |
Автор: Wowa 6.2.2006, 23:44 |
почему? ![]() ![]() |
Автор: sergejzr 6.2.2006, 23:44 |
JS всмысле |
Автор: Wowa 6.2.2006, 23:45 |
А, наверное.. |
Автор: sergejzr 6.2.2006, 23:47 |
Вон, смотри, сколько там скрипта http://demo.nextapp.com/ChatClient/app?serviceId=Echo.ClientEngine Интересно, сколько кода там реально нужно ![]() |
Автор: Tirael 7.2.2006, 03:50 |
sergej.z, ну например пытаюсь разобраться вот в этом чате: http://www.web-tech-india.com/software/jsp_chat.php Но он как-то криво кажись построен. Например, ты сидишь и жмешь Refresh, либо вся страница обновляется целиком через 5 секнуд ( по умолчанию). Зачем сделанно это обновление? Например, когда я разбирал чат, написанный на аплетах, то там было сделанно несколько по-другому: отправляет сообщение, на серверной стороне оно получается и тут же рассылается всем пользователям, которые подсоединены в данный момент. Так вот как реализовать такой же принцип, но уже с использовнием сервлетов? |
Автор: Wowa 7.2.2006, 03:57 | ||
я думаю, что просто пользователи регулярно запрашивают новые сообщение сами, а не сервер их отсылает. |
Автор: sergejzr 7.2.2006, 04:15 | ||||
Ты не можешь апплет заменить сервлетом ![]() Чат на апплете - вообще немного другая история. Конечно в плане трафа и скорости он оптимален. С другой стороны не у всех ява установлена. Да и ресурсы апплеты едят (хотя тут кривизна браузеров играет роль) Лучший вариант - явяскрипт с использованием XMLHTTPRequest. Экономим рессурсы на клиенте и сервере. Минимум передаваемого трафа, максимум скорости. Я бы делал такую связку явяскрипт-сервлет.
Там возможно реализовать типа: Клиент запросил инфу у сервера и ждёт ответа. Сервер отвечает только когда новые сообщения есть, а всё это время клиент "висит" в ожидании. Я так делал. Правда это были обе ява проги. В принципе апплет - сервлет - тоже самое. Не знаю, как съест это XMLHTTPRequest и не вылетит ли по ConnectionTimeOut. |
Автор: Nobody 7.2.2006, 13:41 |
Хех. Я делал так. Клиент открывает (в невидимом фрейме) коннект к серверу, сервер в него пишет новые поступающие сообщения и не закрывает соединение. Получам односторонний бесконечный коннект, через который сервер может слать все JS-команды. |
Автор: Tirael 7.2.2006, 14:50 | ||||
Ну по крайней мере здесь https://www6.software.ibm.com/developerworks/education/j-chat/ описывается именно такой механизм: на сервер приходит сообщение и тут же отправляется всем клиентам.
Возможно, но к сожалению ![]() |
Автор: sergejzr 7.2.2006, 14:55 | ||
Да. И 100 -200 юзеров сервер вполне выдержит. Но тут надо конечно экцпериментальным путём определить, сколько соеденений сервер может держать. |
Автор: Wowa 7.2.2006, 14:56 | ||
Это если они постоянно подсоединены? А если через ява-скрипт и HTTPrequest? |
Автор: sergejzr 7.2.2006, 15:01 |
Ага Ну там стандартный механизм. Через определённые промежутки времени север опрашивается на наличие новых сообщений. Преимущества и недостатки имеют обе архитектуры. Тут надо эксперименты ставить... А вообще - лучше аськи чата нет ![]() |
Автор: Tirael 7.2.2006, 15:10 |
![]() ![]() ![]() |
Автор: sergejzr 7.2.2006, 15:39 | ||
А это что? |
Автор: Tirael 7.2.2006, 17:01 | ||||
![]() ![]() |
Автор: Opik 5.3.2006, 01:15 | ||
Супер чат, на памяти и всё такое. Правда новые сообщения криво посылалаются, т.е просто обновляется окно. что не очень оптимально. Да и обовляется он по таймауту. Я его переделывать начал, и вот что сделал: 1) Разделил на 4 фрейма (новый с юзерами, 1 невидимый) 2) Сообщения шлются через скрытый фрейм и скрипт ДОБАВЛЯЕТ только НОВЫЕ сообщения (через JS). 3) Исходя, из п2 понятно что добавил JS кода (приличное кол-во) Вообщем получилось просто супер. Просто реактивно. Сейчас дописываю регу. Так что чат с "потенциалом"... ) Очень благодарен за линк. Мне он очень жизнь облегчил! |
Автор: Wowa 5.3.2006, 01:22 |
На ПХП чат был бы имхо не так изящно реализован и тормозил бы сильно. Расскажи, как твое мнение относительно чата на яве ![]() |
Автор: Opik 5.3.2006, 14:04 |
Wowa, ну я реализовывал чат на PHP, на таком же принципе работы. Сейчас реализовал это на яве - небо и земля. И если учесть, что это ещё и на винде сейчас.... то вообще нечего говорить. |
Автор: Tony 7.3.2006, 19:48 |
я делал так .Делал 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. |