在Meteor中存储公共用户状态的位置?

时间:2013-06-28 15:54:48

标签: collections meteor state denormalization

假设我有聊天室作为Meteor应用程序的一部分,并且在每个聊天室内,用户应该看到聊天室中还有谁,以及所有其他聊天室中的用户数量。

我应该在哪里存储每个用户所在的聊天室?应该是

  • 在提供的Meteor.users集合中,作为每个用户下的属性?
  • Chatrooms集合中,作为每个聊天室内的用户列表?
  • 对数据进行非规范化的正确方法是什么,以便用户可以看到其他聊天室中的人数,而无需推送所有这些用户记录?

相关问题:我应该何时将内容存储在Meteor.users()中,而不是包含用户ID和房间文档的单独集合,例如ChatroomParticipants?即:

{ user: "foo", room: "room 1" }
{ user: "bar", room: "room 2" }

此外,有没有办法设置它,以便用户可以从多个窗口登录到同一个应用程序,并在不同的房间?也就是说,特定用户的呈现不依赖于某些全局状态,这使得所有内容都会在会话中发生变化。

1 个答案:

答案 0 :(得分:0)

在这种情况下,你应该在Meteor.users文件上写一下。您只在一个文档中集中读/写越少越好,因此它不会成为瓶颈。了解meteor-presence如何使用高级用法。