Наиболее эффективный способ определения Socket.io в обработчиках («сообщений» )

Все примеры Socket.io следуют этому шаблону

io.sockets.on("connection", function(mySocket){
    mySocket.on("my message", function(myData){
       ...
    });
});

Мне кажется, что это создаст новую функцию обратного вызова для каждого соединения. Предполагая, что каждый сокет отвечает на сообщение одинаковым образом, не будет ли более эффективным с точки зрения использования памяти определение обработчика один раз для всех сокетов, подобных этому:

function myMessageHandler(data){
   ...
}

io.sockets.on("connection", function(mySocket){
    mySocket.on("my message", myMessageHandler);
});

или даже это:

io.sockets.on("my message", function(mySocket, myData){
   ...
});

Если да, то почему Socket.io рекомендует практику, которая тратит память? Ожидается ли, что мы захотим сохранить переменные состояния для сокета внутри закрытия обратного вызова «соединения»?

7
задан Jesse Hattabaugh 29 July 2012 в 04:01
поделиться