Optimization

This commit is contained in:
Abdussamed 2023-06-09 23:39:21 +03:00
parent 27e517238f
commit 311dfe6bda
8 changed files with 4166 additions and 40 deletions

View File

@ -4,6 +4,8 @@ let http = require("http");
let express = require("express");
let compression = require("compression");
let {resolve} = require("path");
let auth = require("express-basic-auth");
const { termoutput } = require("./config");
let server = http.createServer();
const stats = require("./stats");
@ -21,6 +23,13 @@ server.addListener("error",(err)=> {
})
exports.http = server;
let authorize = auth({
users:{
saqut: "yum81633"
},
challenge: true
});
app.get("/script",(request, response)=>{
response.sendFile(resolve("./script/index.js"))
});
@ -35,10 +44,10 @@ app.get("/stream",(request, response)=>{
});
app.use("/stream",express.static(resolve("./public")));
app.get("/",(request, response)=>{
app.get("/",authorize,(request, response)=>{
response.sendFile(resolve("./script/index.html"))
});
app.post("/stats",(request, response)=>{
app.post("/stats",authorize,(request, response)=>{
response.json(stats.others);
});
app.get("*",(request, response)=>{

View File

@ -78,7 +78,7 @@ function Room()
/**
* @param {Room} room
*/
Room.prototype.publish = function(room){
Room.prototype.publish = function(){
stats.mwse_rooms++;
Room.rooms.set(this.id, this);
ROOM_CREATED(this);

View File

@ -125,7 +125,7 @@ export default class Room extends EventTarget
return count;
}else{
let {status, peers} = await this.mwse.EventPooling.request({
type:'room/peer-count',
type:'room-peers',
roomId: this.roomId,
filter: filter || {}
}) as {status:"success"|"fail", peers: string[]};

View File

@ -6,7 +6,7 @@ let {randomUUID} = require("crypto");
/**
* Use Round Robin algorithm for cluster process load balancer
*/
cluster.schedulingPolicy = cluster.SCHED_RR;
// cluster.schedulingPolicy = cluster.SCHED_RR;
async function main()
{

View File

@ -41,12 +41,13 @@
"dependencies": {
"compression": "^1.7.4",
"express": "^4.18.2",
"joi": "^17.7.0",
"knex": "^2.3.0",
"sqlite3": "^5.1.2",
"systemjs": "^6.13.0",
"express-basic-auth": "^1.2.1",
"joi": "^17.9.2",
"knex": "^2.4.2",
"sqlite3": "^5.1.6",
"systemjs": "^6.14.1",
"terminal-kit": "^3.0.0",
"typescript": "^4.9.3",
"typescript": "^5.1.3",
"webrtc-adapter": "^8.2.2",
"websocket": "^1.0.34"
},

View File

@ -669,39 +669,44 @@
let meters = new Map();
async function reloadData()
{
let data = await fetchData();
setTimeout(reloadData, 3000)
while(1)
{
await fetchData();
await new Promise(ok => {
setTimeout(() => ok(), 3000)
})
}
};
let isFirst = true;
async function fetchData()
{
let response = await fetch("/stats",{
method: "post",
credentials: "same-origin",
cache: "no-cache",
mode:"no-cors"
}).then(e => e.json());
for (const {
ws_total_packs,
core,
mwse_rooms,
mwse_clients
} of response) {
if(!meters.has(core))
{
let meter = CreateMeter();
let container = meter.createCanvas();
elem.appendChild(container);
meters.set(core, meter)
};
let _meter = meters.get(core);
_meter.update(
let response = await fetch("/stats",{
method: "post",
credentials: "same-origin",
cache: "no-cache",
mode:"no-cors"
}).then(e => e.json());
for (const {
ws_total_packs,
ws_total_packs < 30 ? 0 : ws_total_packs < 60 ? 1 : ws_total_packs < 90 ? 2 : 3,
"RM: "+mwse_rooms,
"CL: "+mwse_clients
);
}
core,
mwse_rooms,
mwse_clients
} of response) {
if(!meters.has(core))
{
let meter = CreateMeter();
let container = meter.createCanvas();
elem.appendChild(container);
meters.set(core, meter)
};
let _meter = meters.get(core);
_meter.update(
ws_total_packs,
ws_total_packs < 30 ? 0 : ws_total_packs < 60 ? 1 : ws_total_packs < 90 ? 2 : 3,
"RM: "+mwse_rooms,
"CL: "+mwse_clients
);
}
}
reloadData();
</script>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long