我使用mizzao:user-status软件包向我的用户添加在线/活动状态。使用此功能,我可以运行查询以获取所有在线用户。
我面临的问题是,让用户列表保持最新状态。
我相信我需要使用Accounts.onLogin
来更新列表,我认为这是在服务器端使用的。那么,如何保持用户列表与客户端连接的用户保持同步?
答案 0 :(得分:6)
就像README上的mizzao点。
首先执行发布。
Meteor.publish("userStatus", function() {
return Meteor.users.find({ "status.online": true });
});
和subscribe
,
Meteor.subscribe('userStatus')
第二次执行帮助以使用户在线返回。
<强>的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();
}
})
<强> 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>