【发布时间】:2017-05-09 12:11:18
【问题描述】:
我对使用 Node.js 很陌生,所以请原谅我的无知 :)
现在我有一个 Web 应用程序,它使用 Node/Angular/Express 来从服务器上的 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/)。这能够指示用户何时连接到应用程序,但不能保持会话独立于用户的视角。
关于如何保持这些会话独立的任何想法?谢谢!
【问题讨论】:
-
几乎唯一的方法是修复 DLL 不具有全局状态。
-
如何管理用户会话?这仍然需要服务器上的套接字吗?
-
不,您可以并且应该在没有任何 websocket 连接的情况下处理会话
-
你会建议什么替代方案?
标签: c++ angularjs node.js sockets session