2012-05-22 2 views
0

Я разрабатываю небольшой проект, используя Node.js. Я использую mongoose для моделей, поэтому я использую MongoDb. И я продолжаю сессии в MongoStore. Также я хочу использовать socket.io, выполняющий несколько процессов узла. Из socket.io Документовузел js с использованием Mongo и Redis одновременно

The MemoryStore only allows you deploy socket.io on a single process. 
If you want to scale to multiple process and/or multiple servers 
you can use our RedisStore which uses the Redis 
NoSQL database as man in the middle. 

Так я думаю, что нужно Redis тоже. Я новичок в Node, и я хочу знать - нормально ли использовать две базы данных для управления различными частями приложения. Или есть способ работать с socket.io при запуске нескольких процессов узла и только для использования MongoDb

ответ

4

Совсем недавно решение, которое использует MongoStore с паба/суб функциональность с помощью mubsub (Pub/вспом для Node.js и MongoDB) появился ,

Он может быть прикреплен к Socket.io почти так же, как вы бы с RedisStore:

io.configure(function() { 
    io.set('store', new MongoStore({host: 'localhost', port: 27017, db:'session_db'})); 
}); 

Больше информации и источник в: https://github.com/kof/socket.io-mongo

+0

хорошо, спасибо! –

+1

На стороне записки мне не удалось заставить ее работать с несколькими запущенными процессами, она поддерживала квитирование. Поэтому, если у вас есть работа, пожалуйста, дайте мне знать! –

2

Магазин Redis уже встроен в Socket.IO, но, что еще более важно, имеет две важные функции, которые особенно необходимы для Socket.IO:

1) Публикация подписки (для связи между процессами)
2) ключ-значение магазин (чтобы хранить всю информацию о соединениях)

в то время как ключ-значение магазина часть может быть сделано с MongoDB, его не обеспечивает функциональность pub-sub.

Нижняя линия, ЕСЛИ вам нужно масштабировать за пределы одного процесса (что означает, что вы ожидаете более тысячи одновременных запросов), чем RedisStore является решением.

Ресурсы:

Смежные вопросы