2017-07-26 115 views
0

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

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

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

回答

1

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

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

参见:https://github.com/dburles/meteor-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

+1

[流星用户状态(https://github.com/mizzao/meteor-user-status)也很类似 – blueren