Добрый день. Подскажите, как реализовать задачу: есть сокет сервер(использовал socket.io, принцип работы понятен и прозрачен), где при подключение нового клиента и получении данных необходимо создать отдельную задачу(поток) для выполнения подзадач. Есть некоторое недопонимание, методы socket.io неблокирующие или блокирующие? Как распараллелить задачи на работу с клиентами и подзадачи клиентов? Или использовать Websocket?
примерно как должна выглядеть задача:
var io = require('socket.io');
io.sockets.on('connection', function (socket) {
socket.on('join', function (data) {
NewTask(data); =>Обработка данных, подключение к устройствам, получение ответа от устройств.
Отправляем клиенту, что задача выполнена
socket.emit('update', { data: 'Device is online' });
});
socket.on('disconnect', function () {
console.log('user disconnected');
});
});