Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Sails.js。如何计算在线用户?_Javascript_Node.js_Sails.js - Fatal编程技术网

Javascript Sails.js。如何计算在线用户?

Javascript Sails.js。如何计算在线用户?,javascript,node.js,sails.js,Javascript,Node.js,Sails.js,我是sails.js(node.js)的新手。现在获取在线用户数量的最佳方法是什么?我不确定这是否是最佳方法,但一种方法可能是使用web套接字 在客户端,当有人连接时,它可以发送用户名或电子邮件,因此您可以在服务器端保留在线用户列表 然后在web套接字断开连接时,从联机用户列表中删除该用户 现在,你有了在线用户的数量 有关如何使用web套接字的更多信息,请查看 我希望这能有所帮助 将有一个可用的活动会话池。我建议不要使用socket.io计算用户数,因为它没有100%的回退(在某些情况下需要fl

我是sails.js(node.js)的新手。现在获取在线用户数量的最佳方法是什么?

我不确定这是否是最佳方法,但一种方法可能是使用web套接字

在客户端,当有人连接时,它可以发送用户名或电子邮件,因此您可以在服务器端保留在线用户列表

然后在web套接字断开连接时,从联机用户列表中删除该用户

现在,你有了在线用户的数量

有关如何使用web套接字的更多信息,请查看


我希望这能有所帮助

将有一个可用的活动会话池。我建议不要使用socket.io计算用户数,因为它没有100%的回退(在某些情况下需要flash)

很抱歉回复太晚,但这在#sails.js中已经出现过几次

我不知道我的方法是否一定正确,但它从0.9.4开始工作,这是迄今为止我发现的最好的方法:

    // if sails is undefined, get it out of global 
    var sails = global.sails, 
        ws = sails.ws,
        channel = req.param('channel') || '',    // by room, or '' for top level
        current = ws.of(channel).manager.open;   // an array of socket ids 
如果您没有使用
ws
sails.io
也可以工作(结构略有不同)。请调用
current.length
以获取已连接客户端的数量,或者您可以执行以下操作:

    var status = [];
    for (var x in current) {
        if (ws.of(channel).manager.handshaken.hasOwnProperty(x)) {
            status.push(ws.of(channel).manager.handshaken[x].session.user);
        }
    }
  • 找出他们是谁。:)嗯

每次新的套接字连接到服务器时,sails都会自动添加一个新房间,我认为如果您不添加新的自定义房间,他们的数量就是在线用户的数量

选中此项: 帆、插座、房间()

但我确信这不是解决办法,我正在寻找更好的办法