|
|
|
@ -150,7 +150,7 @@ let indexHTML = fs.readFileSync("./dist/index.html").toString();
|
|
|
|
|
if (user) {
|
|
|
|
|
debug("afterLogin")
|
|
|
|
|
|
|
|
|
|
await afterLogin(socket, user)
|
|
|
|
|
afterLogin(socket, user)
|
|
|
|
|
|
|
|
|
|
debug("afterLogin ok")
|
|
|
|
|
|
|
|
|
@ -178,7 +178,7 @@ let indexHTML = fs.readFileSync("./dist/index.html").toString();
|
|
|
|
|
let user = await login(data.username, data.password)
|
|
|
|
|
|
|
|
|
|
if (user) {
|
|
|
|
|
await afterLogin(socket, user)
|
|
|
|
|
afterLogin(socket, user)
|
|
|
|
|
|
|
|
|
|
callback({
|
|
|
|
|
ok: true,
|
|
|
|
@ -561,7 +561,7 @@ let indexHTML = fs.readFileSync("./dist/index.html").toString();
|
|
|
|
|
debug("check auto login")
|
|
|
|
|
if (await setting("disableAuth")) {
|
|
|
|
|
console.log("Disabled Auth: auto login to admin")
|
|
|
|
|
await afterLogin(socket, await R.findOne("user"))
|
|
|
|
|
afterLogin(socket, await R.findOne("user"))
|
|
|
|
|
socket.emit("autoLogin")
|
|
|
|
|
} else {
|
|
|
|
|
debug("need auth")
|
|
|
|
@ -621,6 +621,8 @@ async function sendMonitorList(socket) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async function sendNotificationList(socket) {
|
|
|
|
|
const timeLogger = new TimeLogger();
|
|
|
|
|
|
|
|
|
|
let result = [];
|
|
|
|
|
let list = await R.find("notification", " user_id = ? ", [
|
|
|
|
|
socket.userID,
|
|
|
|
@ -631,6 +633,9 @@ async function sendNotificationList(socket) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
io.to(socket.userID).emit("notificationList", result)
|
|
|
|
|
|
|
|
|
|
timeLogger.print("Send Notification List");
|
|
|
|
|
|
|
|
|
|
return list;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -639,24 +644,27 @@ async function afterLogin(socket, user) {
|
|
|
|
|
socket.join(user.id)
|
|
|
|
|
|
|
|
|
|
let monitorList = await sendMonitorList(socket)
|
|
|
|
|
|
|
|
|
|
sendNotificationList(socket)
|
|
|
|
|
|
|
|
|
|
// Delay a bit, so that it let the main page to query the data first, since SQLite can process one sql at the same time only.
|
|
|
|
|
// For example, query the edit data first.
|
|
|
|
|
setTimeout(async () => {
|
|
|
|
|
for (let monitorID in monitorList) {
|
|
|
|
|
sendHeartbeatList(socket, monitorID);
|
|
|
|
|
sendImportantHeartbeatList(socket, monitorID);
|
|
|
|
|
Monitor.sendStats(io, monitorID, user.id)
|
|
|
|
|
}
|
|
|
|
|
}, 500);
|
|
|
|
|
await sleep(500);
|
|
|
|
|
|
|
|
|
|
for (let monitorID in monitorList) {
|
|
|
|
|
await sendHeartbeatList(socket, monitorID);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (let monitorID in monitorList) {
|
|
|
|
|
await sendImportantHeartbeatList(socket, monitorID);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (let monitorID in monitorList) {
|
|
|
|
|
await Monitor.sendStats(io, monitorID, user.id)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async function getMonitorJSONList(userID) {
|
|
|
|
|
let result = {};
|
|
|
|
|
|
|
|
|
|
let monitorList = await R.find("monitor", " user_id = ? ", [
|
|
|
|
|
let monitorList = await R.find("monitor", " user_id = ? ORDER BY weight DESC, name", [
|
|
|
|
|
userID,
|
|
|
|
|
])
|
|
|
|
|
|
|
|
|
@ -786,6 +794,8 @@ async function sendHeartbeatList(socket, monitorID) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
socket.emit("heartbeatList", monitorID, result)
|
|
|
|
|
|
|
|
|
|
timeLogger.print(`[Monitor: ${monitorID}] sendHeartbeatList`)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async function sendImportantHeartbeatList(socket, monitorID) {
|
|
|
|
|