有没有办法获得所有当前连接的用户的列表?我查看了许多聊天室教程,没有一个提供这种方法。这是可能的吗?如果可能,人们将如何正确地实现它呢?
发布于 2013-06-22 06:51:03
我已经设法找到了一种方法,可以在不使用低效的keep-alives的情况下做到这一点。基本上,用户登录或重新连接会将profile.online设置为true,注销或断开连接会将其设置为false。你可以将它添加为一个陨石智能包,并在这里尝试一下:
https://github.com/mizzao/meteor-user-status
修复或改进是值得赞赏的。
发布于 2012-11-23 13:55:16
我们通过在用户登录时设置online属性,然后定期pinging (每10秒)并将任何非活动用户设置为脱机来实现这一点。不是很理想,但它是有效的。我很想在Meteor中看到这个功能。以下是pinging函数。
Meteor.setInterval(function () {
var now = (new Date()).getTime();
OnlineUsers.find({'active':true,'lastActivity': {$lt: (now - 30 * 1000)}}).forEach(function (onlineActivity) {
if(onlineActivity && onlineActivity.userId) {
OnlineUsers.update({userId:onlineActivity.userId},{$set: {'active': false}});
Meteor.users.update(onlineActivity.userId,{$set: {'profile.online': false}});
}
});
}, 10000);发布于 2015-02-20 14:19:00
这是一个老问题,但对于任何关注这一问题的人来说,现在有了一个meteor包来监控客户端到服务器的连接。它被称为流星用户状态,可以在on github.上找到
https://stackoverflow.com/questions/13239761
复制相似问题