basic connection and naming
This commit is contained in:
parent
0c593d1019
commit
031541b1fe
60
index.js
60
index.js
@ -1,18 +1,72 @@
|
|||||||
|
const logging = true;
|
||||||
|
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const http = require('http');
|
const http = require('http');
|
||||||
|
const crypto = require('crypto');
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
const clientPath = __dirname+'/../html';
|
const clientPath = __dirname+'/../../Websites/TerminalHomepage';
|
||||||
console.log('Serving static from ' + clientPath);
|
console.log('Serving static from ' + clientPath);
|
||||||
app.use(express.json());
|
app.use(express.json());
|
||||||
app.use(express.static(clientPath));
|
app.use(express.static(clientPath));
|
||||||
const server = http.createServer(app);
|
const server = http.createServer(app);
|
||||||
|
|
||||||
|
const users = [];
|
||||||
|
app.get('/connect', (req, res) => {
|
||||||
|
const id = crypto.randomUUID();
|
||||||
|
users.push({
|
||||||
|
socket: req.socket,
|
||||||
|
date: new Date(),
|
||||||
|
name: "",
|
||||||
|
id
|
||||||
|
});
|
||||||
|
if (logging)
|
||||||
|
console.log(`User connected with ID '${id}'.`);
|
||||||
|
res.status(200).json({ id });
|
||||||
|
});
|
||||||
|
|
||||||
|
app.post('/disconnect', (req, res) => {
|
||||||
|
const { id } = req.body;
|
||||||
|
for (let i = 0; i < users.length; i++)
|
||||||
|
if (users[i].id === id) {
|
||||||
|
if (logging)
|
||||||
|
console.log(`User with ID '${id}' disconnected.`);
|
||||||
|
users.splice(i, 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
res.status(200).send();
|
||||||
|
});
|
||||||
|
|
||||||
|
app.post('/nickname', (req, res) => {
|
||||||
|
const { id, name } = req.body;
|
||||||
|
for (const u of users)
|
||||||
|
if (u.id === id) {
|
||||||
|
if (logging)
|
||||||
|
console.log(`(Re-)named user with ID '${id}'!`);
|
||||||
|
u.name = name;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
res.status(200).send();
|
||||||
|
});
|
||||||
|
|
||||||
app.post('/message', (req, res) => {
|
app.post('/message', (req, res) => {
|
||||||
const { id, message } = req.body;
|
const { id, message } = req.body;
|
||||||
console.log(`User '${id}' sent message '${message}'.`);
|
let name = "";
|
||||||
res.status(200).json({message});
|
for (const u of users)
|
||||||
|
if (u.id === id) {
|
||||||
|
name = u.name;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
let user = `User '${name}'`;
|
||||||
|
if (!name)
|
||||||
|
user = name = "Anonymous"
|
||||||
|
|
||||||
|
if (logging) {
|
||||||
|
const idStr = (!name) ? ` ID: ${id}.` : '';
|
||||||
|
console.log(`${user} sent message '${message}'.${idStr}`);
|
||||||
|
}
|
||||||
|
res.status(200).json({ message });
|
||||||
});
|
});
|
||||||
|
|
||||||
server.on('error', err => {
|
server.on('error', err => {
|
||||||
|
Loading…
Reference in New Issue
Block a user