@belyaevcyrill

Обязательно ли для работы с сокетами привлекать Node.js?

В качестве backend'а проекта используется YII2 Framework с публичным приложением (YII Frontend), "админкой" (YII Backend) и модулем (YII-модуль), который обеспечивает REST API.

Публичное приложение (YII Frontend) реализовано частично статическим html (вывод обычных view), а частично с применением Angular и Vue.js. А админка (YII Backend) реализована полностью на Angular.

Те части у публичного приложения, которые реализованы на Angular, общаются с сервером через REST API. А админка общается с сервером только через REST API.

Возникла необходимость в написании нативных iOS- и Android-приложений с такой возможностью, чтобы в режиме реального времени они могли отображать динамически изменяемую информацию. Например, пользователь с ролью Роль 1 в мобильном приложении сменил статус объекта Объект 1. Пользователь с ролью Роль 2 сразу же это увидел. Очевидно, что для этого необходимо привлекать сокеты.

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

Ведь наверняка в Enterprise-проектах в качестве сокет-сервера выбрали бы не PHP, а именно Node.js.

Спасибо!
  • Вопрос задан
  • 711 просмотров
Пригласить эксперта
Ответы на вопрос 3
Ahen
@Ahen
Универсальный дилетант
Ответ написан
Комментировать
sayber
@sayber
Да, я программирую на PHP и еще асинхронно!
Можно на PHP, при помощи того же Ratchet.
Есть желание, можно и на ноде а еще лучше Go.
Я делал на всех вариантах, разницы особой не заметил, при 20к обращений в минуту.
При больших нагрузках, пых конечно сдает и памят садиться.
Ответ написан
catanfa
@catanfa
недавно проводил анализ вариантов для решения этой типичной задачи, выбор пал на проект https://github.com/centrifugal/centrifugo - очень удобный, хорошая докуменация, превосходная производительность, современный, поддерживается. Стоит отметить, что на тот момент, когда я общался с создателем этого фреймворка, нельзя было передать данные с клиента на сервер через вебсокеты. Но часто это и не нужно для решения.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы