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)

bombascter 25.04.2012 09:44

На чем лучше писать online javascript шахматы
 
Всем доброе время суток! Хочу написать свой шахматный портал на javascript, и хотел спросить у специалистов. На каком языке лучше всего писать серверную часть обмена данными (передача ходов), ajax не подходит. Нужно что-бы обмен данными происходил почти мгновенно, но при этом не обновлять каждый определенный промежуток времени браузер, в поиске пришедших данных. Читал о сокетах, наверное не самое лучшее решение ? Еще нужно что-бы другие игроки имели возможность наблюдать за игрой. Сам клиент, почти написан на javascript. Знаю только php js. Думаю, что наверное прийдеться изучать Java? Возможно есть какое-то интересное решение? Подскажи пожалуйста, кто знает ?

Diego 25.04.2012 14:23

Советую node.js(серверный js) + http://socket.io/ Ничего дополнительно учить не надо, единственное, придется помучатся с изучением асинхронного программирования на сервере.
Суть nodejs в том, что он позволяет не постоянно работать скрипту и проверять состояние игры каждый момент, а реагировать только на определенные события, тем самым позволяет создавать мультиплееры на сколько угодно игроков, и особой нагрузки такой код на сервере не вызовет.

Из недостатков - пока что nodejs не так популярен как php, соответственно и хостингов с этой технологией намного меньше.

Kolyaj 25.04.2012 14:48

Цитата:

Сообщение от Diego
Ничего дополнительно учить не надо

Цитата:

Сообщение от Diego
придется помучатся с изучением асинхронного программирования на сервере

Взаимоисключающие предложения.


Цитата:

Сообщение от Diego
Из недостатков - пока что nodejs не так популярен как php, соответственно и хостингов с этой технологией намного меньше.

Любой VPS, они не сильно дороже виртуальных хостингов.

Diego 25.04.2012 15:07

Цитата:

Сообщение от Kolyaj (Сообщение 171184)
Взаимоисключающие предложения.

я имел ввиду языки программирования. JS он и на сервере js :)
Имхо, выучить новый стиль программирования намного легче чем новый язык с его особенностями и функциями.

trikadin 25.04.2012 15:58

Diego, боюсь, помучаться придётся не только с "изучением асинхронного программирования на сервере". Ещё нода имеет привычку падать от малейшей ошибки, жрать память, и т.д.

bombascter, почему, кстати, ajax не подходит? Если вас даже сокеты не смущают, значит, дело не в кроссбраузерности. А в чём тогда?

Kolyaj 25.04.2012 16:49

Цитата:

Сообщение от trikadin
Ещё нода имеет привычку падать от малейшей ошибки

За больше года в продакшне ни разу не упала.

Цитата:

Сообщение от trikadin
жрать память

Какое-то время наблюдал за потребляемой памятью, потом забил, т.к. она не росла в течение нескольких месяцев.

Цитата:

Сообщение от trikadin
и т.д.

?

Kolyaj 25.04.2012 16:51

Про падение от ошибок: что-то мне подсказывает, что никто не читает документацию, т.к. часто это заблуждение вижу.
http://nodejs.org/api/process.html#p...aughtexception

trikadin 25.04.2012 16:59

Kolyaj, да, я думаю, у вас не падает. Но что-то мне подсказывает, что такой уровень профессионализма не везде. Например, я не имел в виду, что нода жрёт память сама по себе, я имел в виду, что легко допустить, чтобы нода начала жрать память. То же самое и с ошибками, например, ссылка на эту вещь в документации стала открытием и для меня.

Мой пост ставил целью подчеркнуть то, что учиться придётся не только асинхронному программированию.

Kolyaj 25.04.2012 17:12

Цитата:

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

Ну так в любом языке/фреймворке можно это легко допустить. PHP спасает только то, что там процесс умирает сразу.


Цитата:

Сообщение от trikadin
Мой пост ставил целью подчеркнуть то, что учиться придётся не только асинхронному программированию.

С этим я согласен. Ещё придётся учиться работать в серверном, а не браузерном, окружении. Язык только верхушка айсберга.

trikadin 25.04.2012 17:18

Цитата:

Сообщение от Kolyaj
Ну так в любом языке/фреймворке можно это легко допустить. PHP спасает только то, что там процесс умирает сразу.

Примерно то же происходит и со страничками в вебе, поэтому JS-ники, которые пишут на клиенте, часто не задумываются об утечках памяти.

Цитата:

Сообщение от Kolyaj
С этим я согласен. Ещё придётся учиться работать в серверном, а не браузерном, окружении. Язык только верхушка айсберга.

Кстати, а какой сервер вы используете? nginx?


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