Hola,
Si no quieres mandar un broadcast por cada itereacion del loop, porque no guardas en un objeto or Array y lo mandas cuando sea completado...
ejemplo:
Código Javascript
:
Ver originalvar app_res = [];
for(var i = 0; i < user_apps.length; i++) {
//HACER LA CONSULTA
//ENVIAR EL SOCKET CON LOS DATOS
app_res.push(user_apps[i]);
}
socket.broadcast.json.emit('to users' , app_res );
Esto optimizaría el código si lo usaras así, sin embargo Node.js es sumamente optimizado y no tendría ningún problema en mandar tu información de la manera que lo planteaste ..
pero tendrías razón yo me iría mejor por lo optimizado..