console.error('❌',newError(`Recieved an update from ${socket.ip} without a usr!`).message)
}elseif(!loc.tok){
console.error('❌',newError(`Recieved an update from ${socket.ip} for usr ${loc.usr} without an sk32!`).message)
}else{
// Get loc.usr
User.findById(loc.usr)
.where('sk32').equals(loc.tok)
.then((user)=>{
if(!user){
console.error('❌',newError(`Recieved an update from ${socket.ip} for ${loc.usr} with tok of ${loc.tok}, but no such user was found in the db!`).message)
}else{
// Broadcast location
io.to(loc.usr).emit('get',loc)
debug(`Broadcasting ${loc.lat}, ${loc.lon} to ${loc.usr}`)
// Save in db as last seen
user.last={
lat:parseFloat(loc.lat),
lon:parseFloat(loc.lon),
dir:parseFloat(loc.dir||0),
spd:parseFloat(loc.spd||0),
time:loc.tim
}
user.save()
.catch((err)=>{console.error('❌',err.stack)})
}
})
.catch((err)=>{console.error('❌',err.stack)})
}
})
// Shutdown (check for remaining clients)
socket.on('disconnect',(reason)=>{
debug(`${socket.id} disconnected because of a ${reason}.`)