Node.js nodejs:如何最好地协调会话和套接字

Node.js nodejs:如何最好地协调会话和套接字,node.js,session,socket.io,Node.js,Session,Socket.io,背景: 我们有一个工作的web应用程序,它使用sockets socket.io将多个客户端连接到单个服务器 在服务器上有一个对象,它本质上是一个连接列表。当客户端首次连接时,它将发送基本信息,服务器将其存储为: connections[socket.id] = { "name": name, "id": id, etc. }; 通过socket ID组织连接列表,可以方便地处理断开连接,并向其他客户端发送通知等,这种简单的设计对于基本测试和轻量级使用非常有效。然而,为了在封闭网络之外真正使用

背景:

我们有一个工作的web应用程序,它使用sockets socket.io将多个客户端连接到单个服务器

在服务器上有一个对象,它本质上是一个连接列表。当客户端首次连接时,它将发送基本信息,服务器将其存储为:

connections[socket.id] = { "name": name, "id": id, etc. };
通过socket ID组织连接列表,可以方便地处理断开连接,并向其他客户端发送通知等,这种简单的设计对于基本测试和轻量级使用非常有效。然而,为了在封闭网络之外真正使用,当然有必要维护适当的用户帐户,并要求用户登录并进行身份验证

问题:

我们使用的是express,而且非常新,因此有许多会话/cookie示例用于启动会话,并根据req.session.user限制对某些页面的访问。在那里准备一些基本的东西没有问题。但在这一点上,我不清楚是否有一种好的标准设计模式将会话信息绑定到套接字中。例如,在我们的封闭世界应用程序中,用户在一个简单的警报对话框中输入用户名,并在创建套接字时将其传递到服务器,这允许填充上面的connections[]条目

但是现在,用户名/pw是在实际加载受限应用程序页面之前在登录页面上输入的,例如,我们希望使用会话验证用户名来填充上面为该用户创建的套接字数据。希望这是有意义的

我可以想象一些方法来实现这一点,但它们充其量看起来不雅观,最糟糕的是笨重且容易出错。似乎应该有一个通用的设计模式来适应这种情况。到目前为止,我在这里搜索没有成功,有人能给我一些启发吗?

是一种不引人注目的框架,auth php端使用google api和socket运行以提供实时支持,此外,您不需要处理由于静态内容处理而导致的后期nodejs错误,node是为了速度,您需要它轻巧