Meteor客户端在服务器上断开事件

时间:2012-09-08 19:38:07

标签: javascript meteor

简单的问题,也许是简单的答案:我如何在服务器上知道某个客户端已断开连接?基本用例:服务器需要知道玩家是否已断开连接。

5 个答案:

答案 0 :(得分:4)

 Meteor.publish("yourPublishFunction", function()
        {
            var id = this._session.userId;
            this._session.socket.on("close", Meteor.bindEnvironment(function()
            {
              console.log(id); // called once the user disconnects
            }, function(e){console.log(e)}));

            return YourCollection.find({});
        });

答案 1 :(得分:3)

在发布功能中,您可以按如下方式观看套接字关闭事件。

this.session.socket.on "close", -> # do your thing

答案 2 :(得分:3)

我已经创建了一个非常全面的软件包来跟踪每个用户的所有登录会话,以及他们的IP地址和活动:

  

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

要监视断开连接,您可以执行以下操作,同时捕获注销和浏览器关闭:

UserStatus.on "sessionLogout", (userId, sessionId) ->
  console.log(userId + " with session " + sessionId + " logged out")

您也可以查看代码并为自己做类似的事情。

答案 3 :(得分:1)

也许(在服务器代码中)

Meteor.default_server.sessions.length

Meteor.default_server.stream_server.open_sockets.length

答案 4 :(得分:0)

你可以做一件事在服务器上制作一个事件,然后从浏览器用ajax 调用它,在一些小的时间间隔settimeinterval 后调用,使用会话值到标题中服务器din`t得到用户的请求,这意味着他断开连接