Я пытаюсь реализовать простую блокировку, используя следующий код:Socket.io: получить событие запуска несколько раз
Сервер:
socket.on('lock', function(ressInfo)
{
var lock = false;
if(ressLocks.indexOf(ressInfo.id) === -1)
{
ressLocks.push(ressInfo.id);
lock = true;
}
socket.emit("lock", lock);
});
Клиент:
this.requestLock = function(ressInfo, callback)
{
if(currentlyOnline)
{
socket.emit("lock", ressInfo);
socket.on("lock", function(lock)
{
// this gets triggered one additional time with each lock
callback(lock);
});
}
else
{
callback(true);
}
}
На первый звонок Я получаю один обратный вызов с true
, при втором вызове я получаю два обратных вызова с false
, на третьем вызове три и т. д.
Что здесь происходит? Почему socket.on
вызывается несколько раз?