From 1b77a5511c5a402115cac67fa6de81562426b749 Mon Sep 17 00:00:00 2001 From: the_real_mcarn Date: Wed, 21 Aug 2019 20:32:42 +0200 Subject: [PATCH] Added chat with usernames --- index.html | 54 +++++++++++++++++++++++++++++ index.js | 42 ++++++++++++++++++++++ node_modules/socket.io/package.json | 12 +++---- 3 files changed, 102 insertions(+), 6 deletions(-) create mode 100644 index.html create mode 100644 index.js diff --git a/index.html b/index.html new file mode 100644 index 0000000..41db75d --- /dev/null +++ b/index.html @@ -0,0 +1,54 @@ + + + + Socket.IO chat + + + + + + + +
+ + + +
+ + \ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 0000000..b39dc20 --- /dev/null +++ b/index.js @@ -0,0 +1,42 @@ +// Include dependencies +var app = require('express')(); +var http = require('http').createServer(app); +var io = require('socket.io')(http) + +// Set variables +const port = 9966; +var users = 0; + +// Serve Client +app.get('/', function(req, res){ + res.sendFile(__dirname + '/index.html'); +}); + +// Socket.io server side +io.on('connection', function (socket) { + // Log connects / disconnects + console.log('User connected'); + socket.emit('user_identify'); + + socket.on('user_login', function (username) { + io.emit('message_receive', { 'username': 'Server', 'message': `${username} has connected`}); + }); + + users++; + socket.on('disconnect', function () { + console.log('User disconnected'); + users--; + }); + console.log(`Users online: ${users}`); + + // Handle messages + socket.on('message_send', function (msg) { + console.log(msg.username + ': ' + msg.message); + io.emit('message_receive', msg); + }); +}); + +// Log on server +http.listen(port, function() { + console.log(`Listening on port ${port}`); +}); \ No newline at end of file diff --git a/node_modules/socket.io/package.json b/node_modules/socket.io/package.json index 37478b2..92d4025 100644 --- a/node_modules/socket.io/package.json +++ b/node_modules/socket.io/package.json @@ -1,19 +1,19 @@ { - "_from": "socket.io", + "_from": "socket.io@^2.2.0", "_id": "socket.io@2.2.0", "_inBundle": false, "_integrity": "sha512-wxXrIuZ8AILcn+f1B4ez4hJTPG24iNgxBBDaJfT6MsyOhVYiTXWexGoPkd87ktJG8kQEcL/NBvRi64+9k4Kc0w==", "_location": "/socket.io", "_phantomChildren": {}, "_requested": { - "type": "tag", + "type": "range", "registry": true, - "raw": "socket.io", + "raw": "socket.io@^2.2.0", "name": "socket.io", "escapedName": "socket.io", - "rawSpec": "", + "rawSpec": "^2.2.0", "saveSpec": null, - "fetchSpec": "latest" + "fetchSpec": "^2.2.0" }, "_requiredBy": [ "#USER", @@ -21,7 +21,7 @@ ], "_resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.2.0.tgz", "_shasum": "f0f633161ef6712c972b307598ecd08c9b1b4d5b", - "_spec": "socket.io", + "_spec": "socket.io@^2.2.0", "_where": "C:\\Users\\Arnev\\Documents\\Git\\arnweb-chat", "bugs": { "url": "https://github.com/socketio/socket.io/issues"