Meteor.js仅根据其ID发布给一个用户

时间:2016-08-09 20:03:30

标签: javascript node.js meteor

我正在为 Meteor 中的游戏创建一个简单的匹配系统,我的架构非常简单:我有一个服务器端集合waitingList在等待时插入用户id

当用户加入列表时,它会检查列表中是否有其他用户,如果有,则应确认两个玩家是否都准备就绪,然后创建游戏。

简单地node.js with socket.io这将非常简单,因为每个用户都在自己的房间我只是将消息广播到两个用户房间并让他们两个都接收< strong>你准备好了吗?确认。

我是meteor的新手,我有点迷失了,我怎样才能为列表中选中的两个用户发送确认信息而不是当前正在等待的所有用户?

1 个答案:

答案 0 :(得分:1)

我能想到的最简单的方法就是将等待用户的集合发布给每个用户:

Meteor.publish('otherWaitingUsers',()={
  return Meteor.users.find({ waiting: true, _id: { $ne: this.userId }},{ fields: { waiting: 1 }});
});

然后在客户端订阅。如果有其他用户在等待,您将在客户端上看到它。

当有很多人在等待和挑选合作伙伴时,你仍然需要处理这些情况。