Создание больших проектов на Node или PHP?

Ребят, не могу разобраться, помогите. Устал уже искать статьи и видео. Хочу создать большой сайт, живой чат, вообщем многопоточность будет велика. На чем писать весь сайт? Node или PHP?
  • Вопрос задан
  • 1241 просмотр
Решения вопроса 3
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Чат удобно делать на сокетах, сокеты удобно делать на node.js+socket.io
Все остальное imho удобней делать на php.
Но в целом +1 к Вячеслав Лебедев, пишите на том что знаете.
Ответ написан
И нода и пхп хороши.
Пиши на том, что лучше знаешь или что больше нравится :)
Оба справятся с чатиком
Ответ написан
@xfg
Для больших фулл реалтаймовых сайтов с базами данных пока беда, они почти все работают по принципу request response, как и веб до появления вебсокетов. Приходится хаки писать или делать дикий polling базы. Из нового поколения баз данных сейчас есть только rethinkdb, крутой проект, но еще довольно сырой. Как только пробуешь делать что-то посерьезнее, чем примеры из документации, выясняется что этого он еще не умеет, разработчики конечно обещают это всё добавить, так что ждем.

Есть еще такой фреймворк Meteor, но он мне вообще не нравится, раньше просто доставал обновления из mongo через обычный polling базы и называл это всё крутым фреймворком для реалтайм сайтов. Потом они переделали и стали слушать обновления через oplog, который нужен для репликаций в mongo, но не для всех запросов это работает, для некоторых все равно выходом является только polling и в этот oplog сыпятся апдейты со всех баз данных и всё такое. Ну а хули, костыль есть костыль. Ну и вообще штука дико монолитная, хуже чем sails.js.

Кароче пока нет нормальной инфраструктуры, чтобы писать большие фулл реалтаймовые сайты. Ну а в PHP вообще ничего нет, даже уровня Meteor, PHP застрял в схеме request-response. Попробуй найди там что-то получше, чем мизерная Ratchet библиотека для работы с вебсокетами. На ней пока к сожалению весь реалтайм в PHP и заканчивается.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
iNeedHelp
@iNeedHelp
на Node.js чат можно написать в кратчайшие сроки с помощью одного из этих модулей:
https://www.npmjs.com/package/ws
https://www.npmjs.com/package/socket.io

Работа с каждым из них очень детально написана в книге Сухова "Node.js: Путеводитель по технологии".

Если решитесь писать на PHP, то, возможно, имеет смысл посмотреть в сторону ReactPHP. Там как раз нет блокирующих функций
Ответ написан
@MadridianFox
Web-программист, многостаночник
Для большого сайта, нужна возможность горизонтального масштабирования. Т.е. в какой-то момент вам не хватит мощности одного web-сервера.
Поэтому крупные сайты стоит делать если не микросервисными, то хотя-бы такими, чтобы можно было поднимать 2-3 копии сайта и ставить между ними балансировщик нагрузки. Для этого надо продумать несколько вещей, например хранение сессий на отдельном сервере (в БД или каком-нибудь redis). К чему я веду?
К тому что подобные трюки, позволяют не только горизонтально масштабировать монолитный сайт, но и облегчают разделение сайта на несколько частей, каждая из которых может быть написана на чём угодно. Так, например основная часть сайта может быть выполнена на PHP, а такие высокоинтерактивные части, как чат или уведомления, могут быть реализованы на nodejs. Обе эти части сайта без проблем смогут работать с сессией пользователя, потому что она не привязана к конкретному web-серверу.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы