Ответ 1
Функция обратного вызова, которая принимает io.sockets.on
как второй аргумент, должна принимать один аргумент: сокет. У вас нет, поэтому сокет на второй строке socket.on
равен undefined.
И обратный вызов для socket.on
не содержит никаких аргументов, поэтому socket
в этой функции также undefined.
Код должен работать, если вы переместите параметр сокета из объявления второй функции в первую:
io.sockets.on('connection', function (socket) {
socket.on('disconnect', function () {
console.log(socket.id);
});
});