javascript - Meteor.js 根据用户 ID 仅向一名用户发布

标签 javascript node.js meteor

我正在为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/

相关文章:

java - 构建丰富的 Web 应用程序有哪些选择?

javascript - 更改 jQuery 的默认序列化器

node.js - Sails js 应用程序导致 CPU 使用率达到 100%

node.js - 关于与 npm/gulp 脚本集成的说明

javascript - 具有多个独立客户端应用程序的 Meteor 应用程序

javascript - 为什么在jQuery中调用函数需要包装在方法中?

javascript - JQuery:获取跨度内的对象

node.js - 如何检查 mongodb 中是否已创建模式?

javascript - 在我的 meteor 应用程序中使用nodejs fs模块

angularjs - Meteor+AngularJs 示例