const serverConfig = require('../../config/serverConfig.js') // Server Config const wrtColor = require('../common/wrtColor') // const { sleep } = require('./common/sleep') function filterExpired(player) { // let diff = ((new Date())-player.lastActivity) // console.log(`${player.username} diff: ${diff}`) if (((new Date())-player.lastActivity) <= serverConfig.playerExpiration) { return player } else { // console.log(`Expired Session: ${player.username}`) wrtColor.magenta(`Expired Session: ${player.username}`) } } function playerCleanup (state) { // setInterval(function() { //<--This works, but I'm concerned about Memory Leak. I need to learn more. // console.log(state) // state.players = state.players.filter(checkExpired) // }, serverConfig.cleanupInterval) //setTimeout Version self-calling function let timerId = setTimeout(function tick() { // console.log(state) state.players = state.players.filter(filterExpired) timerId = setTimeout(tick, serverConfig.cleanupInterval) }, serverConfig.cleanupInterval) } module.exports = { playerCleanup: playerCleanup }