Архитектура для службы чата на основе XMPP с использованием веб-сокетов - PullRequest
4 голосов
/ 13 апреля 2011

Допустим, я хочу создать веб-службу чата на основе веб-сокетов. И скажем также, что мне нужно несколько отдельных чатов.

Мне нужно это масштабировать, поэтому я думаю использовать XMPP, чтобы я мог прозрачно использовать несколько серверов. Архитектура, показанная на диаграмме, мне нужна?

enter image description here

А мне даже нужен NodeJS?

1 Ответ

2 голосов
/ 13 апреля 2011

Как насчет балансировщика нагрузки node.js и нескольких серверов node.js за ним.

используйте что-то вроде redis для хранения данных и обработки передачи сообщений. Смотрите эту статью

Тогда каждый клиент живет на сервере node.js, вам все равно, какой.

Каждое сообщение обрабатывается сервером node.js (вам все равно, какое).

Каждое сообщение отправляется в redis сервером node.js, который обрабатывает это входящее сообщение.

Затем каждый сервер node.js забирает его и отправляет всем клиентам, подключенным к этому серверу и к этой комнате чата.

Вам понадобится немного черной магии для передачи сообщений из единственного соединения socket.io на вашем балансировщике нагрузки в tcp-сокеты нескольких серверов node.js.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...