You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.1 KiB
32 lines
1.1 KiB
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 |
|
}
|
|
|