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

Check if a user is currently online to meteor server

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

我知道对于完全无状态的传统 Web 应用程序,"online"use 的定义有点不清楚,但是由于现代 Web 框架依赖于 websocket,如果websocket 已打开。

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

总结:对,有这么一个机制

例如,有一些包,它存储用户与 meteor 服务器的活动登录连接,并通过自己的集合或作为用户配置文件的一部分提供它们。

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

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

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

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

https://github.com/mizzao/meteor-user-status

(感谢评论中的blueren

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

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);
  });
});

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

参见:https://docs.meteor.com/api/connections.html#Meteor-onConnection