Ваш VAR1
уникален для каждого события .on('something')
, которое происходит и будет потеряно, как только обработчик событий будет завершен. Это локальная переменная внутри этого обработчика событий, так что новый VAR1
создается каждый раз, когда вызывается обработчик событий, и это будет мусор, собранный Javascript, как только обработчик событий закончит работу. При следующем запуске обработчика событий будет создан новый VAR1
, а затем собран мусор.
Теперь, если вы хотите, чтобы это были уникальными для каждого отдельного соединения и последними на протяжении этой связи, вы можете объявить его в несколько ином более высоком объеме, как это:
io.sockets.on('connection', function (socket) {
var VAR1 = true;
socket.on('something', function(data){
if(VAR1 === true){
VAR1 = false;
}
});
});
Теперь, новом VAR1
будет создан для каждого сокета, который будет подключаться, и эта переменная будет длиться в течение всего времени этого соединения (поскольку она находится в закрытии), и каждое событие .on('something', ...)
, которое происходит, сможет получить доступ к уникальному VAR1
для каждого отдельного сокета.
FYI, если вы хотите уникальную переменную для сокета, вы можете просто добавить свойство объекта сокета iself:
io.sockets.on('connection', function (socket) {
socket.VAR1 = true;
socket.on('something', function(data){
if(socket.VAR1 === true){
socket.VAR1 = false;
}
});
});
Это уникальный как для подключения и сообщения. Он будет потерян, как только обратный вызов к 'socket.on ('something'' вернется, поэтому ни один другой пользователь не может его изменить, даже сообщения от одного и того же пользователя не могут его изменить. –