繁体   English   中英

如何为每个用户处理多个Node.js服务器之间的通信?

[英]How do I handle communication between multiple Node.js servers for each user?

我正在尝试让用户仅登录一次,并将其信息保存在所有服务器上。 对用户信息所做的任何更改将立即对所有服务器可用。 是否可以在不让每个用户分别“登录”每个服务器的情况下执行此操作?

有点像$_SESSION for php,但是对于Node.js

设计1-

我认为最好的做法是,但不知道如何在服务器之间共享套接字数据,也许使用PHP的$_SESSION类的东西? 设计1

设计2-

我目前正在做什么:

  1. 用户使用socket.emit到main.js
  2. main.js将用户信息添加到发射
  3. main.js发出到适当的服务器
  4. 适当的服务器发出回main.js
  5. main.js最终回传给用户

这似乎效率低下,感觉不对劲

设计2

如果您的信息主要是静态的,则可以尝试类似于JWT的方法 这些是身份验证服务器可以提供的加密签名令牌,用户可以随身携带。 该令牌可能包含有关您希望每个服务器都可用而无需用户访问它的用户的信息。

如果不是这样,则您可能正在考虑在所有服务器之间共享数据库,并将其作为它们之间同步的点。


根据我们的评论进行的更新(以便以后可以将其删除):

如果您决定使用自动包含的JWT令牌,则根本不需要去数据库。 这些令牌将包含所需的所有信息,但对于不了解其内容的最终用户而言将是透明的。

此外,一旦您了解了JWT标准,就不必使用JSON对象,因为它只是可以由另一种切换的序列化方法。

您需要在身份验证时(或在需要时)向用户提供这些令牌之一,然后要求该用户在从其他服务器请求信息或行为时向其他服务器提供该令牌。 令牌将成为您的同步方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM