esempi di Socket.io tutti seguono questo schemamodo più efficace per definire Socket.io su ("messaggio") gestori
io.sockets.on("connection", function(mySocket){
mySocket.on("my message", function(myData){
...
});
});
Mi sembra che questo avrebbe creato una nuova funzione di callback per ogni connessione. Supponendo che ogni presa risponde al messaggio nello stesso modo, non sarebbe più efficiente della memoria per definire il gestore una volta per tutte le prese come questa:
function myMessageHandler(data){
...
}
io.sockets.on("connection", function(mySocket){
mySocket.on("my message", myMessageHandler);
});
o anche questo:
io.sockets.on("my message", function(mySocket, myData){
...
});
Se è così, perché Socket.io consiglia una pratica che spreca memoria? Ci aspettiamo di voler mantenere variabili stateful per il socket all'interno della chiusura della callback "connessione"?
Sei impegnato in quella forma inutile di preoccupazione nota come "ottimizzazione prematura". Se la differenza nel sovraccarico fa o rompe l'applicazione, node.js è la scelta sbagliata della piattaforma. – ebohlman
La mia logica applicativa viene eseguita su dozzine di messaggi socket e serve migliaia di connessioni simultanee. Se ogni connessione duplica migliaia di righe di callback, ciò mi sembra una grande supervisione dell'ottimizzazione – arkanciscan