Créer une liste de Clients Connectés à l'aide d'une douille.io

Voici 2 questions connexes. Poster ensemble fait plus de sens.

Question 1

J'ai un node.js application qui émet un événement pour tous les clients, et tous les clients vont réagir avec un ready émettent. Comment puis-je créer une liste de tous les clients qui ont répondu à la première émettent, et quel type d'identification peuvent être utilisés pour distinguer les clients?

Question2:

Ce que je suis en train de faire après collecter une liste de clients connectés, pour ensuite accéder à une base de données MySQL table de N nombre de lignes et d'attribuer à chaque client X lignes chacune. Ces lignes sera émise à leurs clients respectifs. Comment cela peut-il être fait?

Code actuel pour Qn 1

Nœud Code

setInterval(function() {
    util.log('Checking for new jobs...');
    dbCheckQueue(function(results) {  //checks if there are new rows to "distribute" to clients
        if (results.length) {
            util.log(results.length + ' new jobs found.');
            io.sockets.emit('job_available');
        }
    });
}, 10*1000);

Côté Client, le Code JS

socket.on('job_available', function() {
                console.log('Job Available.. Responding with Ready!');
                socket.emit('ready');
            });

io.sockets.on('connection', function(socket) {
    socket.on('ready', function() {
        //UPDATE N rows with client_id in column checkout.
        //Then SELECTS * from table where checkout = client_id
        getListings(client_id, function(listings) {
            socket.emit('job', listings);   //send jobs
        });
    });
});

Code actuel pour Qn 2
Le code fonctionne pour un seul client, mais comment puis-je faire une boucle par tous les clients connectés et effectuer la même mise à jour de la colonne et de la sélection de lignes?

io.sockets.on('connection', function(socket) {
    socket.on('ready', function() {
        //UPDATE N rows with client_id in column checkout.
        //Then SELECTS * from table where checkout = client_id
        getListings(client_id, function(listings) {
            socket.emit('job', listings);   //send jobs
        });
    });
});

OriginalL'auteur Nyxynyx | 2011-11-27