Ho un server socket.io
che ascolta i socket:Il multithread Socket.IO?
io.sockets.on('connection', function(socket){
socket.on('myEvent', function(data){
socket.emit('eventReceived', { status: 1 });
});
});
È questo codice funzionante in multithread? se due client emetteranno l'evento myEvent
, funzionerà allo stesso tempo per entrambi i client? o sarà gestito uno dopo l'altro?
Grazie mille!
No, non è multithreaded. Node.js utilizza un ciclo di eventi a thread singolo. Vedi [questa risposta] (http://stackoverflow.com/questions/9362823/why-is-a-function-and-a-callback-non-blocking-in-node-js/9363071#9363071) del mio per un ulteriori spiegazioni. –
Se il Node.js non è multithread, significa che anche Socket.IO non è multithreading? – udidu
Esattamente. Puoi scalare eseguendo un backend distribuito per la messaggistica, c'è un [redis store] (https://github.com/LearnBoost/socket.io/blob/master/lib/stores/redis.js) integrato. –