Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Вернуться   Форум программистов > Web программирование > Общие вопросы Web
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2012, 15:10   #1
doubletony
 
Регистрация: 29.11.2010
Сообщений: 8
По умолчанию Какой javascript движок мне следует взять?

Всем привет

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

Суть игры: пользователь задает вопрос и после этого игра начинается между 6 игроками (3 парня на 3 девушки). Парни отвечают на вопросы

девушек и наоборот. В конце они могут выбрать друг друга, если захотят.

Как пример flash приложение вконтакте "спросил увидел полюбил". Главная страница/задать вопрос: http://cossa.ru/upload/medialibrary/2f0/Clearasil-2.jpg
Игра: http://vkdiz.ru/uploads/posts/2011-0...12_25.0823.png
Выбор: http://onlain-love.ru/wp-content/upl...l-polyubil.png


Так вот, я отлично знаю html, php, mysql, немного js, ajax, jQuery. Какой мне следует движок/framework взять за основу построения системы?

Может уже есть js библиотеки специально для таких вещей?

К примеру, я читал про Ajax Push Engine (http://www.ape-project.org/). А может мне стоит на чистом jQuery со всякими методами .post писать

сайт? Хочу сделать этот проект популярным, поэтому пользователей и нагрузки будет много.

Спасибо!
doubletony вне форума Ответить с цитированием
Старый 07.11.2012, 16:24   #2
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,703
По умолчанию

JS никак не влияет на нагрузку сервера. Не в ту сторону копаете.
Виталий Желтяков вне форума Ответить с цитированием
Старый 07.11.2012, 19:55   #3
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Про движок не в тему вообще)
Но я всегда всем советую jQuery+Underscore+Backbone. А сам реалтайм-сервер ради интереса реализовал бы на node.js.
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 08.11.2012, 11:56   #4
doubletony
 
Регистрация: 29.11.2010
Сообщений: 8
По умолчанию

Спасибо за ответы.

MyLastHit, мне очень нужен твой ответ на следующий вопрос: зачем создавать реал-тайм сервер, если можно просто воспользоваться jQuery+php+mysql?

Я не понимаю как сервер будет устроен. Я прочитал как его включить у себя на компьютере, но как включить в интернет? Например, надо сделать чат на NodeJS. Где будет храниться инфа пользователей и сообщений? ведь не в mysql?
doubletony вне форума Ответить с цитированием
Старый 08.11.2012, 17:43   #5
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Цитата:
Сообщение от doubletony Посмотреть сообщение
Спасибо за ответы.

MyLastHit, мне очень нужен твой ответ на следующий вопрос: зачем создавать реал-тайм сервер, если можно просто воспользоваться jQuery+php+mysql?

Я не понимаю как сервер будет устроен. Я прочитал как его включить у себя на компьютере, но как включить в интернет? Например, надо сделать чат на NodeJS. Где будет храниться инфа пользователей и сообщений? ведь не в mysql?
Давай так, твоих знаний РНР хватит, для того, чтобы поднять long pulling сервер? Если нет, тогда зачем выбирать РНР? Можно конечно сговнокодить на jQuery асинхронных запросов по таймеру, но я думаю сервер может лечь если будет тысяч 5 человек онлайн. + запросы по таймеру могут запаздывать из-за плохого соединения и накладываться(у меня была такая проблема, когда писал бота), а это не есть гуд. Даже кеширование переменной запроса не всегда может помочь.

От MySQL вообще придется отказаться. Не понимаю зачем ее тулят везде, где нужны структуры данных... MySQL это целый сервер баз данных, а не база. А у сервера(даже работающего в фоне) потребностей много и запросы блокирующие(из коробки наверняка так и есть).
В Ноде MongoDB(noSQL) работает классно(ассинхронно, быстро и надежно). Все данные о чате хранить в базе Монго и слушать вотчером. Хотя я думаю готовые решения на гитхабе в области чатов есть.
Для того, чтобы включить в интернет, нужно иметь статический IP-адрес(DynDNS не советую, лучше 100р заплати провайдеру). Далее в личном кабинете у регистратора перейди в меню управления доменом и привяжи тупо по IP к своей машине. DNS-сервера у регистраторов обычно свои. Часа через 2-4 все заработает.
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 08.11.2012 в 17:53.
MyLastHit вне форума Ответить с цитированием
Старый 08.11.2012, 23:04   #6
doubletony
 
Регистрация: 29.11.2010
Сообщений: 8
По умолчанию

MyLastHit, вообще суперски все расписал, спасибо

Тут возникают другие проблемы.
1) Если я привежу свой IP к хостингу/домену и создам сервер через NodeJS, то получается, что у меня всегда компьютер должен работать, чтобы сайт был включен?
2) Ты написал про MongoDB и noSQL. Но есть другие способы, чтобы не быть зависимым? Я про то, что я хочу создать сайт и не быть зависимым от кого-либо еще.
3) Если поставить таймер в jQuery, например, каждые 3 секунды отправлять запрос в MySQL (или куда-нибудь еще) и проверять, не написал ли кто-то что-то в чат и эта система из-за большого количества людей может накладываться, то я правильно понял, что long pulling сервер - единственное решение, чтобы все было хорошо? В целом, я могу её изучить, не думаю что это сложно.
4) А как ты думаешь, что используют на wannafun.ru?
Чтобы было проще, login: xoooxma@gmail.com, pass: qwerty123
Я видел там че-то встречалось в исходном коде Socket.IO и Modernizr v2.0.6 (modernizr.js). Получается у них тоже реал-тайм сервер, но только на сокетах (не знаю как правильно выразиться)?

Последний раз редактировалось doubletony; 08.11.2012 в 23:26.
doubletony вне форума Ответить с цитированием
Старый 08.11.2012, 23:36   #7
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

1) Хостинг привязать нельзя к ip)) Вы будете выступать в роли "сам себе хостер". Для работы естественно компьютер должен быть все время включен и иметь стабильное соединение. Создавать сервер через node.js(на основе express.js) - дело 2ух строк кода, и это при условии, что они красиво отформатированы(так как я люблю)). Сам этот сервер будет работать в фоне и висеть на любом не занятом и не заблокированном порту. На 80ый лучше ставить nginx.
2) Не понял про независимость. Ты вполне можешь за 20 минут просмотра любого скринкаста понять как писать в монго, как из нее читать и как вотчить(читать при условии что что-то изменилось). Тут не нужен какой-то очень умный архитектор БД.
3) Не единственное. Есть еще Comet сервер
Socket.IO либа кроссбраузерная. Не обязательно на сокетах. Не много браузеров их сейчас поддерживают. Сокет.ИО использует именно ту технологию, которая работает на клиенте у юзера, а модернизром просто проверяют наличие современных стандартов в браузере, и пишут костыли для недобраузеров.
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 09.11.2012 в 11:23.
MyLastHit вне форума Ответить с цитированием
Старый 11.11.2012, 22:35   #8
doubletony
 
Регистрация: 29.11.2010
Сообщений: 8
По умолчанию

Спасибо снова

Ты не знаешь:
1) есть ли вероятность, что сервер/сайт/хостинг с Mongodb полетит и все пользователи, которые используют эту базу данных, остановят из-за этого свой сайт?
2) могу ли я сделать backup моей базы на Mongodb (например в .txt), чтобы если что перезалить базу в свой local Mysql?
3) я хочу создать большой сайт. если он станет популярным, ведь могут мою базу данных разработчики Mongodb украсть?
doubletony вне форума Ответить с цитированием
Старый 12.11.2012, 00:10   #9
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

1) Монго надежней MySQL(в связке master-slave вероятность того, что потеряете базу отрицательна). Монго лучше MySQL. Монго интересней MySQL. Монго быстрее MySQL. По монго написана превосходнейшая документация.
2) Ну а в чем проблема та? Влоб читаете все записи из базы, задаете шаблонну структуру и пишете в свой файл .txt. Только зачем мигрировать на MySQL?
3) Как они ее украдут? С монго работает Node.JS, который висит на скрытом извне порту. На него nginx проксирует все запросы, которые требуют обработки скриптом. Все просто. Пришел запрос на картинку - nginx отдал картинку, пришел запрос на авторизацию - nginx передал его nodejs-серверу. Просто положите свою монго базу не в public-каталог nginx'a.
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 13.11.2012, 14:44   #10
doubletony
 
Регистрация: 29.11.2010
Сообщений: 8
По умолчанию

MyLastHit, у меня опять появились короткие вопросы по оптимизации. ни в одном источнике не нашел ответы :/

1) зачем существуют хостинги для mongodb (MongoHQ, MongoLab, ...), если проще и бесплатно хранить бд у себя на компе? или это только для тех, кто nodejs сервер ставит не у себя, а например на NodeJitsu или Heroku?

2) могу ли я поставить свой nodejs сервер не на NodeJitsu или Heroku, и не на моем локальном компьютере, а на хостинге? например, у меня есть аккаунты на bluehost.com и nic.ru

3) я читал, что не на многих хостингах установлена Mongodb. Могу ли я установить Mongodb на мои хостинги (bluehost.com и nic.ru) и делать коннект моего будущего сайта к этим хостингам? или выгоднее поставить на свой комп, например, из-за скорости?


4) короче говоря, какой самый оптимальный вариант организации моего сайта (nodejs, mongodb, регистрация пользователей, чат, игра): установить и mongodb, и nodejs на свой локальный комп? или где-то в другом месте оплачивать сервак (не знаю где)?

Последний раз редактировалось doubletony; 13.11.2012 в 15:03.
doubletony вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой бук лучше взять? Dreanks Компьютерное железо 5 05.10.2011 22:03
Что следует учить, чем следует заниматься? CodeNOT Свободное общение 17 29.08.2011 19:10
Какой нетбук взять?! Sisay_Strelca Компьютерное железо 2 04.07.2011 15:28
Какой движок взять? kreatiffchik WordPress и другие CMS 44 12.03.2009 01:04