如何在节点js聊天应用程序中存储用户的会话信息?

时间:2014-12-20 03:35:23

标签: node.js redis socket.io chat

我使用节点js& amp;构建了一个基本的聊天模块。插座io。我知道javascript但在node&插座区域。现在我将把这个聊天模块集成到我们的应用程序中,其中不同组织的员工将能够相互通信。现在,我面临的问题是 - 无法知道在哪里存储连接用户的会话信息。

我想要做的是,假设有2个组织A& B.当组织的任何员工' A'将与节点套接字服务器连接我将为Organization-A& amp;创建会话变量(可能是ARRAY)。将该员工存储在该数组中。对于组织B也是如此。通过这种方式,我想为每个组织创建一种桶形结构。相应的员工将在这些桶中。

因此,当一个组织的任何新员工与套接字服务器连接时,我将检查该员工属于哪个组织&仅告知那些组织的员工。我在这里面临的问题是 - 在哪里存储所有这些连接的用户信息。 Node Socket服务是存储这些数据的正确位置,还是应该使用REDIS(http://redis.io/)等其他机制?

任何想法!!!,处理这种情况的标准方法是什么?

2 个答案:

答案 0 :(得分:1)

是的,最好将它们存储在Redis中。

如果您想要缩放(例如增加Heroku dynos的数量),将数据保留在内存中是一种反模式(读取:将阻止您缩放)。

答案 1 :(得分:0)

我猜他们需要某种凭证。使用文档http://socket.io/docs/作为参考,您可以执行以下操作:

io.on('connection', function (socket) {
  //some code to filter your users between organization A or B 
}

然后您可以通过

向特定用户发送信息
// iterate through each user in organizationA:
socket.emit('orgnizationA', someData);