Optimization
This commit is contained in:
parent
27e517238f
commit
311dfe6bda
|
@ -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)=>{
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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[]};
|
||||
|
|
2
index.js
2
index.js
|
@ -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()
|
||||
{
|
||||
|
|
11
package.json
11
package.json
|
@ -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"
|
||||
},
|
||||
|
|
|
@ -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>
|
||||
|
|
4113
script/index.js
4113
script/index.js
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue