From c8c4ca463e5e83cf7e47afef824f4eb560f185e9 Mon Sep 17 00:00:00 2001 From: Arne van Iterson Date: Wed, 21 Aug 2019 21:29:48 +0200 Subject: [PATCH] Added user (dis)connection broadcasts --- index.html | 11 +++++------ index.js | 37 +++++++++++++++++++++++++++---------- 2 files changed, 32 insertions(+), 16 deletions(-) diff --git a/index.html b/index.html index 41db75d..7270b28 100644 --- a/index.html +++ b/index.html @@ -21,17 +21,16 @@ // Wait for server response and identify client socket.on('user_identify', function(){ - socket.emit('user_login', 'Bart'); + socket.emit('user_login', { + 'username': 'Bart', + 'mailHash': '289e66591abdb9c2d4cb15517f0fd8d8' + }); }); // Send data to server on form submit $('form').submit(function(e){ e.preventDefault(); - var msg = { - 'username': $('#username').val(), - 'message': $('#message').val() - } - socket.emit('message_send', msg); + socket.emit('message_send', $('#message').val()); $('#message').val(''); return false; }); diff --git a/index.js b/index.js index b39dc20..f984796 100644 --- a/index.js +++ b/index.js @@ -7,6 +7,15 @@ var io = require('socket.io')(http) const port = 9966; var users = 0; +// Function for easy server broadcasts +function serverMsg(content) { + return { + 'username': 'Server', + 'mailHash': '470965550d3f019830c421f0535d9268', + 'message': content + } +} + // Serve Client app.get('/', function(req, res){ res.sendFile(__dirname + '/index.html'); @@ -14,29 +23,37 @@ app.get('/', function(req, res){ // Socket.io server side io.on('connection', function (socket) { - // Log connects / disconnects - console.log('User connected'); + // Send identification request to client socket.emit('user_identify'); - socket.on('user_login', function (username) { - io.emit('message_receive', { 'username': 'Server', 'message': `${username} has connected`}); + // Bind username and mailhash to client + socket.on('user_login', function (user) { + socket.username = user.username; + socket.mailHash = user.mailHash; + io.emit('message_receive', serverMsg(`${socket.username} has connected`)); + users++; }); - users++; + // Send disconnect broadcast to all clients socket.on('disconnect', function () { - console.log('User disconnected'); + io.emit('message_receive', serverMsg(`${socket.username} has disconnected`)); users--; }); - console.log(`Users online: ${users}`); // Handle messages - socket.on('message_send', function (msg) { - console.log(msg.username + ': ' + msg.message); + socket.on('message_send', function (message) { + // Build message data for clients + var msg = { + 'username': socket.username, + 'mailHash': socket.mailHash, + 'message': message + } + // Send message to clients io.emit('message_receive', msg); }); }); -// Log on server +// Start http server http.listen(port, function() { console.log(`Listening on port ${port}`); }); \ No newline at end of file