Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   На чем лучше писать online javascript шахматы (https://javascript.ru/forum/server/27795-na-chem-luchshe-pisat-online-javascript-shakhmaty.html)

trikadin 26.04.2012 09:42

Цитата:

Сообщение от Gozar
через почтальона.

Поднять SMTP-сервер и через mailto :)

Почему-то на аякс нацеплен ярлык чего-то адово сложного. Хотя, может, оно и к лучшему - полные идиоты к нему не лезут.

Kolyaj 26.04.2012 12:17

Цитата:

Сообщение от trikadin
Поднять SMTP-сервер и через mailto

"Чтобы сделать ход, отправьте письмо с темой e2-e4 на адрес ..."

Цитата:

Сообщение от trikadin
Почему-то на аякс нацеплен ярлык чего-то адово сложного.

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

trikadin 26.04.2012 12:27

Цитата:

Сообщение от Kolyaj
"Чтобы сделать ход, отправьте письмо с темой e2-e4 на адрес ..."

Не, ну тогда уж надо почтой россии. Для кошерности)

bombascter 27.04.2012 13:21

Цитата:

Сообщение от Gozar (Сообщение 171369)
Мне вот интересно коим местом ajax связан с тем, на каком языке лучше писать серверную часть? ajax по большей части браузерная часть. Серверная часть не зависит от того, будете вы отправлять данные из браузера ajax или через почтальона. Хочешь пиши серверную часть на Erlang, xочешь на PHP, хочешь на nodejs, хочешь на java.


Можно поинтересоваться почему сокеты придуманные для мгновенного обмена информации между сервером и браузером, для чатов и прочего не самое лучшее решение?

Что тогда самое лучшее решение если не сокеты, заглушки из флеша?

Мне кажется или ты плохо знаком с предметной областью? Потому что если это так, то возможно не стоит категорически отказываться от технологии, даже не понимая как она работает и для чего она придумана. Лучшим решением будет сначала изучить технологии, а затем уже говорить что что-то не подходит по той или другой причине, но причина должна быть обоснована. Например сокеты не поддерживаются IE7, а ты решил писать шахматы только для IE7.

Всем спасибо за ответы. Действительно в Java я совсем не знаю. Ajax никогда не использовал. Ajax не подходит, пот почему: Например пользователь сделал ход, он передается на сервер записывается в бд, но как мгновенно передать этот ход второму пользователю, который ожидает хода? На сколько я знаю, второй пользователь, который ждет хода, должен определенный промежуток времени отсылать запросы на сервер с вопросом нет ли полученного хода. Делать такой запрос каждую секунду - это большая нагрузка на сервер. А хода, бывают, делаются намного быстрее чем за секунду! здесь нужно, почти мгновенная передача данных. Почему я простив сокетов? - Потому, что никогда не имел дела с ними. И не уверен что они могут решить данную задачу. Поэтому я и написал, может кто сталкивался с данной проблемой и знает самое приятное решение. Хотелось бы, что-бы все работало правильно и не переделывать по 100 раз. Ради портала готов изучить не только сокеты, но и Java если так будет правильнее сделать) очень приятно, что вас заинтересовала данная тема))

bombascter 27.04.2012 13:22

Наверное, я так понял лучше сделать на сокетах, да ?

bombascter 27.04.2012 13:23

Кто знает какую систему использует chess.com ?

Kolyaj 27.04.2012 16:21

Цитата:

Сообщение от bombascter
Делать такой запрос каждую секунду - это большая нагрузка на сервер.

http://javascript.ru/ajax/comet/long-poll

bombascter 27.04.2012 22:37

Цитата:

Сообщение от Kolyaj (Сообщение 171590)

Спасибо, вот нашел http://habrahabr.ru/post/41223/

bombascter 27.04.2012 22:43

COMET-приложение имеет другой режим функционирования, принципиально отличающийся от обычной генерации страницы.

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

Одновременно подключенные к серверу 100 человек при классическом подходе дали бы 100 процессов(или потоков), большая часть которых будет висеть и ждать сообщения. Это достаточно большие затраты памяти, да и процессорное время тоже тратится, хотя и не в такой степени.

Проблема становится очевиднее при цифрах в 1000, 10.000 соединений, которые вполне достижимы в проектах, рассчитанных на большое количество одновременных пользователей: чаты, онлайн-игры, сайты знакомств и др.

Существует много COMET-серверов, но все они основаны на всего нескольких паттернах преодоления этой проблемы.

trikadin 27.04.2012 23:12

Use Node, be happy.


Часовой пояс GMT +3, время: 20:23.