Создайте список подключенных клиентов с помощью socket.io

Вот 2 связанных вопроса. Размещать их вместе имеет больше смысла.

Вопрос 1

У меня есть приложение node.js, которое отправляет событие всем клиентам, и все текущие клиенты будут отвечать сообщением ready . Как я могу создать список всех клиентов, которые ответили на исходное сообщение, и какой тип идентификации можно использовать для различения клиентов?

Вопрос2:

Что я пытаюсь сделать после сбора списка подключенных клиентов, состоит в том, чтобы затем получить доступ к таблице базы данных MySQL с количеством строк N и назначить каждому клиенту X строк каждому. Эти строки будут отправлены обратно своим клиентам. Как это можно сделать?

Текущий код для Qn 1

Код узла

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);

Клиентский 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
        });
    });
});

Текущий код для Qn 2 Код работает для одного клиента, но как мне перебрать все подключенные клиенты и выполнить то же обновление столбца и выбор строк?

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
        });
    });
});
8
задан Nyxynyx 26 November 2011 в 19:54
поделиться