统计在线用户node.js socket.io集群

时间:2014-04-29 19:22:20

标签: javascript node.js express socket.io

我正在尝试在使用socket.io进行实时通信的多进程(集群)nodejs应用程序上保留在线用户的计数器。

问题是我无法使用推荐的方法:

var onlineCount = Object.keys(io.manager.connected).length;

因为我正在使用群集功能,因此不会在工作线实例之间共享。我尝试过使用以下方法,但计数器仍然不对:

    io.sockets.on('connection', function(socket) {
      redis.incr('connected').then(function(cnt) {
          io.broadcast('count', cnt);
      });
      socket.on('disconnect', function() {
        redis.decr('connected').then(function(cnt) {
            io.broadcast('count', cnt);
        });
      });
    });

是否有任何建议的方法,因为我用Google搜索并发现没什么用处。

谢谢!

0 个答案:

没有答案