Sails.js。 如何指望在线用户?

我是新的sails.js(node.js)。 现在获得在线用户的最佳方式是什么?

我不知道这是不是最好的方法,但一种方式可能是使用networking套接字。

在客户端,当有人连接时,可以发送用户名或者电子邮件,这样就可以在服务器端保留在线用户列表。

然后在networking套接字断开连接,您从用户列表中删除用户。

你去了,你有在线用户的数量。

看看http://socket.io/关于如何使用networking套接字的更多信息

我希望它有帮助。 🙂

对不起,迟到的回复,但这已经出现在#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 

如果你不使用wssails.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); } } 
  • 找出他们是谁 🙂 HTH

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

每次一个新的套接字连接到服务器的风帆自动添加一个新的房间,我想他们的数量是在线用户的数量,如果你不添加一个新的自定义房间。

检查这个:sails.sockets.rooms()

但我相信这不是解决scheme,我正在寻找更好的方法。