所以我终于找到了解决办法。这可能不是处理这个问题的完美方法,但据我所知,它对我非常有效。但是是的,我仍然愿意接受建议。
目前我有 4 个连接应用程序,它们依赖于相同的用户群。
所以我决定构建 SSO(用于管理用户数据库的集中式服务器)
所有 4 个连接应用程序 ping SSO 以进行用户身份验证并获取用户相关数据。
现在这 4 个连接应用程序是使用 Meteor 开发的。
这里的主要挑战是使事物反应/实时。
例如聊天/消息、群组创建、显示用户列表和新注册用户的听众。
所以在这种情况下,用户数据库位于其他远程服务器 (SSO) 上,所以在连接应用程序时我不能:
Meteor.publish("getUsers")
所以在连接应用程序时,我决定创建一个名为的临时集合:
UserReactiveCollection
结构如下:
UserReactiveCollection.{
_id: 1,
userId: '2',
createdAt: new Date()
}
我发布了订阅:
Meteor.publish("subscribeNewUserSso", function () {
return UserReactiveCollection.find({});
});
所以为了更新UserReactiveCollection,我分别在每个连接的应用程序上公开了Rest Api。
这些 api 从 SSO 接收数据并在 UserReactiveCollection 中更新。
因此,在注册新用户时,在 SSO 方面。我 ping 这些 API(在连接应用程序时)并在有效负载中发送插入的 userId。
所以现在那些正在连接的应用程序从订阅接收onDataChanged ping 并获取 userId。
使用该 userId 连接的应用程序 ping 回 SSO 并获取该特定 userId 的用户详细信息并添加到用户列表中。
这就是我所有工作的方式,所以现在我只是将我的答案标记为已接受,但正如我上面提到的那样:“这可能不是处理这个问题的完美方法,但据我所知它对我有用太好了。但是是的,我仍然愿意接受建议。”
特别感谢 @Jankapunkt 帮助我。