2013-12-03 5 views
0

Я хочу запустить задачу каждые несколько секунд (2-5), а затем передать результат клиентам, задача выполняет вызов api и затем как-то вычисляет возвращаемые данные. Запуск задачи без клиентов не имеет никакого смысла, а также выполнение одной и той же задачи для каждого подключенного пользователя ухудшает ситуацию. Использует счетчик и добавляет его к единице, когда соединение происходит событие и удаляется одним при отключением происходит эффективно? Есть ли более умное и элегантное решение?Socket.io проверить, есть ли связи

ответ

1

В Socket.IO 0.7 у вас есть метод клиентов в пространствах имен, это возвращает массив всех подключенных сокетов.

var clients = io.sockets.clients(); 
var clients = io.sockets.clients('room'); // all users from room `room` 

Оттуда вы можете проверить длину массива, чтобы узнать, сколько сокетов подключено.

+0

О, спасибо, я попытался прочитать документацию, но ничего не нашел, а затем начал проверять исходный код, но был сбит с толку. –

Смежные вопросы