mirror of
https://github.com/spacebarchat/server.git
synced 2026-04-23 07:55:40 +00:00
restructure to single project
This commit is contained in:
committed by
TheArcaneBrony
parent
5abd6bb7e0
commit
5e86d7ab9c
64
scripts/benchmark/connections.js
Normal file
64
scripts/benchmark/connections.js
Normal file
@@ -0,0 +1,64 @@
|
||||
require("dotenv").config();
|
||||
const cluster = require("cluster");
|
||||
const WebSocket = require("ws");
|
||||
const endpoint = process.env.GATEWAY || "ws://localhost:3001";
|
||||
const connections = Number(process.env.CONNECTIONS) || 50;
|
||||
const token = process.env.TOKEN;
|
||||
let cores = 1;
|
||||
try {
|
||||
cores = Number(process.env.THREADS) || os.cpus().length;
|
||||
} catch {
|
||||
console.log("[Bundle] Failed to get thread count! Using 1...")
|
||||
}
|
||||
|
||||
if (!token) {
|
||||
console.error("TOKEN env var missing");
|
||||
process.exit();
|
||||
}
|
||||
|
||||
if (cluster.isMaster) {
|
||||
for (let i = 0; i < threads; i++) {
|
||||
cluster.fork();
|
||||
}
|
||||
|
||||
cluster.on("exit", (worker, code, signal) => {
|
||||
console.log(`worker ${worker.process.pid} died`);
|
||||
});
|
||||
} else {
|
||||
for (let i = 0; i < connections; i++) {
|
||||
connect();
|
||||
}
|
||||
}
|
||||
|
||||
function connect() {
|
||||
const client = new WebSocket(endpoint);
|
||||
client.on("message", (data) => {
|
||||
data = JSON.parse(data);
|
||||
|
||||
switch (data.op) {
|
||||
case 10:
|
||||
client.interval = setInterval(() => {
|
||||
client.send(JSON.stringify({ op: 1 }));
|
||||
}, data.d.heartbeat_interval);
|
||||
|
||||
client.send(
|
||||
JSON.stringify({
|
||||
op: 2,
|
||||
d: {
|
||||
token,
|
||||
properties: {},
|
||||
},
|
||||
})
|
||||
);
|
||||
|
||||
break;
|
||||
}
|
||||
});
|
||||
client.once("close", (code, reason) => {
|
||||
clearInterval(client.interval);
|
||||
connect();
|
||||
});
|
||||
client.on("error", (err) => {
|
||||
// console.log(err);
|
||||
});
|
||||
}
|
||||
4
scripts/benchmark/index.js
Normal file
4
scripts/benchmark/index.js
Normal file
@@ -0,0 +1,4 @@
|
||||
require("dotenv").config();
|
||||
|
||||
require("./connections");
|
||||
require("./messages");
|
||||
25
scripts/benchmark/users.js
Normal file
25
scripts/benchmark/users.js
Normal file
@@ -0,0 +1,25 @@
|
||||
require("dotenv").config();
|
||||
const fetch = require("node-fetch");
|
||||
const count = Number(process.env.COUNT) || 50;
|
||||
const endpoint = process.env.API || "http://localhost:3001";
|
||||
|
||||
async function main() {
|
||||
for (let i = 0; i < count; i++) {
|
||||
fetch(`${endpoint}/api/auth/register`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify({
|
||||
fingerprint: `${i}.wR8vi8lGlFBJerErO9LG5NViJFw`,
|
||||
username: `test${i}`,
|
||||
invite: null,
|
||||
consent: true,
|
||||
date_of_birth: "2000-01-01",
|
||||
gift_code_sku_id: null,
|
||||
captcha_key: null,
|
||||
}),
|
||||
headers: { "content-type": "application/json" },
|
||||
});
|
||||
console.log(i);
|
||||
}
|
||||
}
|
||||
|
||||
main();
|
||||
Reference in New Issue
Block a user