сбивается таймер при перезапуске кода

есть таймер работающий на сокетах.

io.sockets.on('connection', function (socket) {
  socket.on('start', function (data) {
    countdown = 7200;
var t =  setInterval(function() {
  countdown--;
var hours = Math.floor(countdown / 60 /60 );
var minutes = Math.floor(countdown / 60) - (hours * 60);
var seconds = countdown % 60;
let timer =  hours +":"+ minutes +":"+ seconds ;
  io.sockets.emit('timer', { countdown: timer});
}, 1000);
  socket.on('stop', function () {
    clearInterval(t);
})
  });

});

работает по назначению, но есть нюанс. Если я перезапущу сервер nodejs таймер сбивается. и плюс к этому если два раза нажму на старт то таймер считает быстрее в два раза соответственно(. Если выношу setInterval за пределы "start" то он начинает считать еще до нажатия на кнопку подскажите в каком направлении хотя бы искать проблему.


Ответы (0 шт):