small tracker improvements

This commit is contained in:
CoolElectronics 2023-08-21 14:07:04 -04:00
parent 68aa977962
commit c5e7e5354f
No known key found for this signature in database
GPG key ID: F63593D168636C50
2 changed files with 11 additions and 7 deletions

1
.gitignore vendored
View file

@ -7,3 +7,4 @@ admin-creds.json
server/config.json server/config.json
.firebaserrc .firebaserrc
.firebase .firebase
.env

View file

@ -25,7 +25,7 @@ app.use(express.json());
admin.initializeApp({ admin.initializeApp({
credential: admin.credential.cert(serviceAccount as ServiceAccount), credential: admin.credential.cert(serviceAccount as ServiceAccount),
databaseURL: "https://adrift-6c1f6-default-rtdb.firebaseio.com" databaseURL: process.env.DB_URL
}); });
let db = admin.database(); let db = admin.database();
let reff = db.ref("/swarm"); let reff = db.ref("/swarm");
@ -49,7 +49,7 @@ reff.on("value", snapshot => {
for (let key of newkeys) { for (let key of newkeys) {
let offer = val[key]; let offer = val[key];
console.log("new offer:" + offer); console.log("new offer");
if (Object.keys(members).length < 1) { if (Object.keys(members).length < 1) {
db.ref(`/swarm/${key}`).set(JSON.stringify({ error: "no swarm members found" })); db.ref(`/swarm/${key}`).set(JSON.stringify({ error: "no swarm members found" }));
@ -58,10 +58,11 @@ reff.on("value", snapshot => {
} }
let selectedid = Object.keys(members)[Math.floor(Math.random() * Object.keys(members).length)]; let selectedid = Object.keys(members)[Math.floor(Math.random() * Object.keys(members).length)];
console.log("sending offer to " + selectedid);
let selectedmember = members[selectedid]; let selectedmember = members[selectedid];
selectedmember.once("message", (answer) => { selectedmember.once("message", (answer) => {
console.log("setting answer" + answer); console.log("recieved answer");
db.ref(`/swarm/${key}`).set(answer); db.ref(`/swarm/${key}`).set(answer);
}); });
selectedmember.send(offer); selectedmember.send(offer);
@ -71,6 +72,11 @@ reff.on("value", snapshot => {
ids = ids.concat(newkeys); ids = ids.concat(newkeys);
}); });
app.get("/stats", (req, res) => {
res.send({
members: Object.keys(members)
});
})
app.ws("/join", (ws, req) => { app.ws("/join", (ws, req) => {
let ver = new URL(`https://a/${req.url}`).searchParams.get("protocol"); let ver = new URL(`https://a/${req.url}`).searchParams.get("protocol");
@ -94,8 +100,5 @@ app.ws("/join", (ws, req) => {
}, 10000); }, 10000);
}); });
setInterval(() => {
console.log(`${Object.keys(members).length} members`);
}, 5000);
app.listen(17776, () => console.log("listening")); app.listen(process.env.PORT, () => console.log("listening"));