如何创建在线/活动用户列表?

Bla*_*ere 2 meteor

我正在使用mizzao:user-status软件包向我的用户添加在线/活动状态.使用此功能,我可以运行查询以获取所有在线用户.

我面临的问题是,保持用户列表与登录的用户保持同步.

我相信我需要用来Accounts.onLogin更新列表,我认为这是在服务器端使用的.那么,我如何保持用户列表与客户端连接的用户保持同步?

Eth*_*aan 6

就像在README上的mizzao点.

首先做发布.

Meteor.publish("userStatus", function() {
  return Meteor.users.find({ "status.online": true });
});
Run Code Online (Sandbox Code Playgroud)

而且subscribe,

Meteor.subscribe('userStatus')
Run Code Online (Sandbox Code Playgroud)

其次,帮助用户在线返回用户.

使用Javascript

Template.example.helpers({
  usersOnline:function(){
    return Meteor.users.find({ "status.online": true })
  },
  usersOnlineCount:function(){
   //event a count of users online too.
   return Meteor.users.find({ "status.online": true }).count();
  }
})
Run Code Online (Sandbox Code Playgroud)

HTML

<template name="example">
 There are currently {{usersOnlineCount}} users online.
<h1>List of Users online </h1>
  <ul>
   {{#each usersOnline}}
   <li> {{username}}</li>
   {{/each}}
  </ul>
</template>
Run Code Online (Sandbox Code Playgroud)