我已经使用node js和socket io构建了一个基本的聊天模块。我知道javascript,但在节点和套接字方面还是很新的。现在我将把这个聊天模块集成到我们的一个应用程序中,不同组织的员工可以在这个应用程序中相互通信。现在,我面临的问题是-无法知道在哪里存储连接用户的会话信息。
我想要做的是,假设有2个组织A& B。当组织'A‘的任何雇员连接到节点套接字服务器时,我将为组织-A创建一个会话变量(可能是一个数组),并将该雇员存储在该数组中。组织B也是如此。通过这种方式,我希望为每个组织创建一种存储桶结构&相应的员工将位于这些存储桶中。
因此,当组织中任何新员工连接到套接字服务器时,我将检查该员工属于哪个组织&只通知那些组织的员工。我在这里面临的问题是-在哪里存储所有这些连接的用户信息。节点套接字服务是存储这些数据正确位置,还是我应该使用一些其他机制,如REDIS(http://redis.io/)?
任何想法!,处理这种情况的标准方法是什么?
发布于 2014-12-20 14:25:51
是的,最好将它们存储在Redis中。
如果你想要扩展(例如,增加Heroku dynos的数量),将数据保留在内存中是一种反模式(阅读:将阻止你进行扩展)。
发布于 2014-12-20 11:43:31
我猜他们需要某种证书才行。使用文档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);https://stackoverflow.com/questions/27576671
复制相似问题