Node.js独立套接字会话

时间:2016-12-23 20:12:51

标签: c++ angularjs node.js sockets session

我是使用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值
  • 服务器向用户#1返回8(希望返回5 ,因为这是用户#1视角中x的最新值)。

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

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

1 个答案:

答案 0 :(得分:1)

这不是node.js问题。 node.js可以很好地完成会话(快速会话是使用express和node.js实现会话的一种非常流行的方式)。

这听起来像你有一个DLL,它一次只支持一个用户,这实际上不适合多用户服务器使用。

虽然有非常丑陋的方法可以解决这个问题(比如为每个用户启动缓存和老化的单独子进程,以便每个子进程都有自己独立的DLL加载副本),但实际上你需要的是一个DLL不会将单个用户的状态保留在全局内存中,因此可以代表多个用户使用它。