- Added chat room function
- improved logs
This commit is contained in:
parent
b911164db2
commit
50327dfffc
@ -1,47 +1,81 @@
|
|||||||
let express = require('express');
|
let express = require('express');
|
||||||
let app = express();
|
let app = express();
|
||||||
let server = require('http').createServer(app);
|
let server = require('http').createServer(app);
|
||||||
|
let {Server} = require("socket.io");
|
||||||
let io = require('socket.io')(server);
|
let io = new Server(server);
|
||||||
|
|
||||||
let port = parseInt(process.env.PORT) || 5000;
|
let port = parseInt(process.env.PORT) || 5000;
|
||||||
server.listen(port, function () {
|
server.listen(port, function () {
|
||||||
console.info('Webserver running');
|
generate_log_message("", "", 'RUNNING', "PORT " + port);
|
||||||
console.info('Port %d', port);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
app.use(express.static(__dirname + '/../public'));
|
app.use(express.static(__dirname + '/../public'));
|
||||||
|
|
||||||
|
|
||||||
io.on('connection', function (socket) {
|
io.on('connection', socket => {
|
||||||
let addedUser = false;
|
let addedUser = false;
|
||||||
|
|
||||||
socket.on('add user', function (username) {
|
socket.on('add user', function (data) {
|
||||||
socket.username = username;
|
socket.username = data.username;
|
||||||
|
socket.room = data.room_name;
|
||||||
|
|
||||||
addedUser = true;
|
addedUser = true;
|
||||||
|
|
||||||
|
socket.join(socket.room);
|
||||||
|
|
||||||
socket.emit('login');
|
socket.emit('login');
|
||||||
|
|
||||||
socket.broadcast.emit('user joined', socket.username);
|
socket.broadcast.to(socket.room).emit('user joined', socket.username);
|
||||||
|
|
||||||
console.info("[JOINED ] " + socket.username);
|
generate_log_message(socket.room, socket.username, "JOINED", "");
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on('new message', function (data) {
|
socket.on('new message', function (data) {
|
||||||
socket.broadcast.emit('new message', {
|
socket.broadcast.to(socket.room).emit('new message', {
|
||||||
username: socket.username,
|
username: socket.username,
|
||||||
message: data
|
message: data
|
||||||
});
|
});
|
||||||
|
|
||||||
console.info("[MESSAGE] " + socket.username + ": " + data);
|
generate_log_message(socket.room, socket.username, "MESSAGE", data);
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on('disconnect', function () {
|
socket.on('disconnect', function () {
|
||||||
if (addedUser) {
|
if (addedUser) {
|
||||||
socket.broadcast.emit('user left', socket.username);
|
socket.broadcast.to(socket.room).emit('user left', socket.username);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.info("[LEFT ] " + socket.username);
|
generate_log_message(socket.room, socket.username, "LEFT", "");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function generate_log_message(room, user, type, message) {
|
||||||
|
let color;
|
||||||
|
switch (type) {
|
||||||
|
case 'LEFT':
|
||||||
|
color = '\x1b[31m';
|
||||||
|
break;
|
||||||
|
case 'JOINED':
|
||||||
|
color = '\x1b[32m';
|
||||||
|
break;
|
||||||
|
case 'MESSAGE':
|
||||||
|
color = '\x1b[36m';
|
||||||
|
break;
|
||||||
|
case 'RUNNING':
|
||||||
|
color = '\x1b[35m';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
color = '\x1b[0m';
|
||||||
|
}
|
||||||
|
room = pad(10, room, ' ').substr(0, 10);
|
||||||
|
user = pad(10, user, ' ').substr(0, 10);
|
||||||
|
type = pad(10, type, ' ').substr(0, 10);
|
||||||
|
|
||||||
|
// Reset color: \x1b[0m
|
||||||
|
console.info("%s[%s] [%s] [%s]\x1b[0m %s", color, room, user, type, message);
|
||||||
|
}
|
||||||
|
|
||||||
|
function pad(width, string, padding) {
|
||||||
|
if (string === undefined) return pad(width, " ", " ");
|
||||||
|
return (width <= string.length) ? string : pad(width, string + padding, padding)
|
||||||
|
}
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"pixi.js": "^6.0.4",
|
|
||||||
"socket.io": "^4.1.2"
|
"socket.io": "^4.1.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ window.addEventListener('load', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Login
|
// Login
|
||||||
socket.emit('add user', username);
|
socket.emit('add user', {'username': username, 'room_name': room_name});
|
||||||
});
|
});
|
||||||
|
|
||||||
function sendMessage() {
|
function sendMessage() {
|
||||||
|
Loading…
Reference in New Issue
Block a user