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

Javascript 统计node.js socket.io群集的在线用户数,javascript,node.js,express,socket.io,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('conn

我试图在使用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);
        });
      });
    });
有没有什么建议的方法,因为我在谷歌上搜索了一下,没有发现任何有用的东西


谢谢

这似乎是一个很好的解决方案: