Node.js独立套接字会话

Node.js independent socket sessions

本文关键字:会话 套接字 独立 js Node      更新时间:2023-10-16

我对使用node.js是新的,所以请原谅我的无知:)

现在,我有一个使用Node/Angular/Express的Web应用程序,以从服务器上的DLL调用C 功能,并将结果返回给客户端。但是,我需要该应用来支持多个用户。

C 服务器函数我正在调用,基于DLL中定义的全局对象返回结果(可以修改)。问题在于,当有多个客户端访问Web应用程序时,在一个会话中修改全局对象效果在其他会话中访问的对象。

示例:

  • x是服务器上C DLL中的对象
  • 用户#1设置X到5
  • 服务器将5返回到用户#1
  • 用户#2设置X到8
  • 服务器将8返回给用户#2
  • 用户#1要求x值
  • 服务器将8返回到用户#1(希望返回5的服务,因为这是从用户#1的角度来看x的最新值)。

我的假设是我应该使用socket.io之类的东西(类似于基本教程http://socket.io/get-started/chat/)。这可以指示用户何时连接到该应用程序,但是无法使会话与用户的角度保持独立。

关于如何保持这些会话独立的想法?谢谢!

这不是node.js问题。Node.js可以很好地进行会议(Express-Session是使用Express和Node.js实施会话的一种非常流行的方式)。

这听起来您有一个DLL,一次只能支持一个单个用户,而这实际上不适合多用户服务器使用。

尽管有非常丑陋的方法可以解决此问题(例如为每个用户启动一个缓存和老化的单独的子过程,因此每个子过程都有自己的单独的DLL加载副本),但您需要的是DLL不会将一个用户的状态保留在全局内存中,因此可以代表多个用户使用。