fix api heartbeat
This commit is contained in:
parent
b1719978a7
commit
91a49a33cd
@ -18,14 +18,13 @@ const register = async (req, res) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
const heartbeat = async (req, res) => {
|
const heartbeat = async (req, res) => {
|
||||||
const { name, secret } = req.body;
|
const { name, secret, playersOnline } = req.body;
|
||||||
|
|
||||||
if (secret !== process.env.GAME_SERVER_SECRET) {
|
if (secret !== process.env.GAME_SERVER_SECRET) {
|
||||||
return res.status(401).json({ message: "Unauthorized" });
|
return res.status(401).json({ message: "Unauthorized" });
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await serverService.updateHeartbeat(name);
|
await serverService.updateHeartbeat(name, playersOnline);
|
||||||
res.json({ status: "ok" });
|
res.json({ status: "ok" });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
res.status(500).json({ message: error.message });
|
res.status(500).json({ message: error.message });
|
||||||
|
|||||||
@ -22,6 +22,10 @@ const userSchema = new mongoose.Schema(
|
|||||||
required: [true, "Password is required"],
|
required: [true, "Password is required"],
|
||||||
minlength: [6, "Password must be at least 6 characters long"],
|
minlength: [6, "Password must be at least 6 characters long"],
|
||||||
},
|
},
|
||||||
|
playersOnline: {
|
||||||
|
type: Number,
|
||||||
|
default: 0,
|
||||||
|
},
|
||||||
role: {
|
role: {
|
||||||
type: String,
|
type: String,
|
||||||
enum: ["user", "admin"],
|
enum: ["user", "admin"],
|
||||||
|
|||||||
@ -18,10 +18,14 @@ const registerGameServer = async (serverData) => {
|
|||||||
console.log(`📡 [REGISTRY] Game Server "${name}" at ${url} is now ONLINE`);
|
console.log(`📡 [REGISTRY] Game Server "${name}" at ${url} is now ONLINE`);
|
||||||
return server;
|
return server;
|
||||||
};
|
};
|
||||||
const updateHeartbeat = async (name) => {
|
const updateHeartbeat = async (name, playersOnline) => {
|
||||||
return await GameServer.findOneAndUpdate(
|
return await GameServer.findOneAndUpdate(
|
||||||
{ name },
|
{ name },
|
||||||
{ lastHeartbeat: Date.now(), status: "online" },
|
{
|
||||||
|
lastHeartbeat: Date.now(),
|
||||||
|
status: "online",
|
||||||
|
playersOnline: playersOnline,
|
||||||
|
},
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -61,7 +61,7 @@ const registerInApi = async () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const HEARTBEAT_INTERVAL = 30000;
|
const HEARTBEAT_INTERVAL = 1000;
|
||||||
const sendHeartbeat = async () => {
|
const sendHeartbeat = async () => {
|
||||||
try {
|
try {
|
||||||
await axios.post(`${config.apiBaseUrl}/servers/heartbeat`, {
|
await axios.post(`${config.apiBaseUrl}/servers/heartbeat`, {
|
||||||
|
|||||||
Reference in New Issue
Block a user