Я создаю приложение чата, которое позволяет пользователям делать частные и групповые чаты. Планирование использования следующих технологий для этого приложения: -
NodeJs + Socket.io + Redis + CouchDB (для хранения истории сообщений) + AngularJS
В моем первоначальном исследовании, использующем Redis в качестве службы PubSub, лучше использовать Socket.io в качестве pub-sub. Исходя из этого, если разные пользователи подключены к разным экземплярам сервера, то использование сокета в этом сценарии создаст проблему как передача сообщения пользователем 1 не будет передана пользователю 2 (пользователь 1 подключен к серверу 1 и пользователю 2, подключенному к серверу 2).
Но если мы используем Redis, то при моем понимании мы должны создавать новые каналы, чтобы включить частные чаты. И их предел до 10k каналов в Redis.
Мои сомнения -
- Нужно ли мне каждый раз создавать новый канал, чтобы включить частный чат между двумя пользователями?
- Если мне нужно создать отдельные каналы, то есть ли на самом деле предел 10K каналов?
- Мне нужен рабочий пример использования Redis в качестве pub/sub с socket.io для включения приватных чатов.
С уважением, Викрам