我正在为Meteor中的游戏创建一个简单的匹配系统,我的架构非常简单:我有一个服务器端集合waitingList
,它会在他们正在等待。
当用户加入列表时,它会检查列表中是否有其他用户,如果有,则应确认两个玩家是否都准备好,然后创建游戏。
在带有socket.io的普通node.js
上,这将非常简单,因为每个用户都在它的自己的房间中,我只需将消息广播给两个用户房间并让他们都收到准备好了吗?确认信息。
我是 meteor 新手,我有点迷失,我如何才能仅向列表中选定的两个用户发送确认,而不向当前正在等待的所有用户发送确认?
最佳答案
我能想到的最简单的方法是将等待用户的集合发布给每个用户:
Meteor.publish('otherWaitingUsers',()={
return Meteor.users.find({ waiting: true, _id: { $ne: this.userId }},{ fields: { waiting: 1 }});
});
然后在客户端上订阅该内容。如果有其他用户在等待,那么您将在客户端上看到它。
您仍然需要处理有很多人在等待和挑选合作伙伴的情况。
关于javascript - Meteor.js 根据用户 ID 仅向一名用户发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38859479/