Tengo un servidor socket.io
el que escucha a los sockets:¿Socket.IO tiene multiprocesamiento?
io.sockets.on('connection', function(socket){
socket.on('myEvent', function(data){
socket.emit('eventReceived', { status: 1 });
});
});
Es este código de trabajo en múltiples hilos? si dos clientes emitirán el evento myEvent
, ¿funcionará al mismo tiempo para ambos clientes? o será manejado uno después del otro?
¡Muchas gracias!
No, no es multiproceso. Node.js usa un solo bucle de eventos con hilos. Ver [esta respuesta] (http://stackoverflow.com/questions/9362823/why-is-a-function-and-a-callback-non-blocking-in-node-js/9363071#9363071) mío para un explicación adicional. –
Si el Node.js no tiene multiprocesamiento, ¿significa que el Socket.IO tampoco es multihilo? – udidu
Exactamente. Puede escalar ejecutando un back-end distribuido para la mensajería, hay una [tienda redis] (https://github.com/LearnBoost/socket.io/blob/master/lib/stores/redis.js) integrada. –