检查用户当前是否在线访问流星服务器

时间:2017-07-26 09:52:41

标签: meteor meteor-accounts

我想确定用户当前是否在线"或连接到Meteor服务器。 我在发送用户消息之前需要此信息,如果用户未连接,我想通过电子邮件发送消息。

我知道对于完全无状态的传统Web应用程序来说," online"使用有点不清楚,但由于现代Web框架依赖于websocket,如果websocket打开,用户应该在线。

问题是Meteor是否包含一种确定用户是否已连接的方法?

1 个答案:

答案 0 :(得分:1)

总结:是的,有这样的机制。

有一个例子包,用于存储用户与流星服务器的活动登录连接,并通过自己的集合或作为用户配置文件的一部分使它们可用。

请参阅:array_intersect_key()

(创建一个名为Presences的新集合)

https://github.com/dburles/meteor-presence

(创建用户的个人资料条目,称为在线状态。但是,还有一个用于在后台存储和更新信息的集合)

https://github.com/dan335/meteor-user-presence/

(感谢评论中的https://github.com/mizzao/meteor-user-status

代码示例(来自第一个列出的软件包)

Meteor.onConnection(function(connection) {
  // console.log('connectionId: ' + connection.id);
  Presences.insert({ _id: connection.id });
  connections[connection.id] = {};
  tick(connection.id);

  connection.onClose(function() {
    // console.log('connection closed: ' + connection.id);
    expire(connection.id);
  });
});

如果您不想依赖包裹,您可以自己使用该机制。

请参阅:blueren