@serious911

Socket.io + Express.js?

Здравствуйте.

К существующему приложению на Express.js необходимо прикрутить чат на Socket.io/SockJS. Текущее приложение уже имеет определенную структуру/роуты/модели/работает с базой данных/загружает файлы и т.п. К нему также можно прикрутить и работу с вебсокетами.

Проблема в том, что так как Node.js работает в одном потоке, то работа с вебсокетами скорее всего будет тормозить остальную часть приложения. Также необходимо будет возможность масштабирования на несколько серверов в будущем.

Как правильно сделать это с точки зрения архитектуры?

Возможно лучше сделать чат в виде отдельного приложения на том же сервере, то есть будет запущено 2 приложения:
1) чат на node.js + socket.io
2) текущее приложение на node.js + express.js

Спасибо.
  • Вопрос задан
  • 1052 просмотра
Пригласить эксперта
Ответы на вопрос 1
Fragster
@Fragster
помогло? отметь решением!
можно в рамках одного приложения (чтобы не терять модель бд и прочее) сделать два воркера https://nodejs.org/api/cluster.html - один под express, другой под socket, если уж там все начнет тормозить, а ядер много. Хотя на самом деле вряд ли будет тормозить, если использовать только асинхронные методы.

Ну, или два приложения и один+ модуль вынесенный в отдельный репозиторий с общими вещами - моделью и т.п. тогда можно эти два приложения разнести по разным серверам.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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