2017-07-26 83 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