Массив сокетов не хранит данные клиентов сокетов и продолжает сбрасываться при каждом поступлении клиентских данных

#javascript #node.js #arrays #sockets #cluster-computing

Вопрос:

У меня есть сервер сокетов tcp, написанный на узле js. У меня есть массив, объявленный глобально, в котором я хочу хранить все клиенты сокетов. Проблема в том, что, поскольку я работаю с кластером узлов, массив не хранит данные и продолжает сбрасываться всякий раз, когда новые данные поступают от любого клиента. Ниже приведен мой код

 const cluster = require('cluster');
var numCPUs = require('os').cpus().length;
var sockets = [];

    if (cluster.isMaster) {
        // Fork workers.
        for (var i = 0; i < numCPUs; i  ) {
            cluster.fork();
        }
    
        cluster.on('death', function(worker) {
           // console.log('worker '   worker.pid   ' died');
            cluster.fork();
        });
    } else {
        net.createServer(function(socket) {
           // console.log('received connection...');
    
            socket.on("error", function(err) {
             //   console.log("socket error: ")
               // console.log(err.stack);
                socket.destroy();
            });
    
            socket.on('data', function(data) {
            sockets.push(socket);
             console.log("existing socket clients"   sockets);
             
            });
        });
    }
 

массив сокетов хранит только текущую запись данных, а не существующие клиенты сокетов. Но если я напишу этот код без кластера, то он сохранит данные сокетов в массиве, и код будет работать нормально

 var sockets = [];

    
        net.createServer(function(socket) {
           // console.log('received connection...');
    
            socket.on("error", function(err) {
             //   console.log("socket error: ")
               // console.log(err.stack);
                socket.destroy();
            });
    
            socket.on('data', function(data) {
            sockets.push(socket);
             console.log("existing socket clients"   sockets);
             
            });
        });
   
 

Заранее спасибо