代码之家  ›  专栏  ›  技术社区  ›  ApriOri

检查用户当前是否联机到meteor服务器

  •  0
  • ApriOri  · 技术社区  · 7 年前

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

    我知道,对于完全没有状态的传统web应用程序,“在线”使用的定义有点不明确,但由于现代web框架依赖于websocket,如果websocket是开放的,那么用户应该是在线的。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Jankapunkt    7 年前

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

    请参阅: https://github.com/dburles/meteor-presence

    (创建一个新集合,称为Presence)

    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