From 6fd5572ca96ea25660e31fa50bf4d559574352bc Mon Sep 17 00:00:00 2001 From: GuilhermeWerner Date: Sat, 19 Sep 2020 14:24:57 -0300 Subject: [PATCH] Change events naming convention and split js code --- Public/index.html | 35 ++--------------------------------- Public/socket.js | 30 ++++++++++++++++++++++++++++++ Source/Server.js | 6 +++--- 3 files changed, 35 insertions(+), 36 deletions(-) create mode 100644 Public/socket.js diff --git a/Public/index.html b/Public/index.html index 4de0e26..a518edc 100644 --- a/Public/index.html +++ b/Public/index.html @@ -38,7 +38,7 @@
- +
@@ -73,38 +73,7 @@ integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"> - + diff --git a/Public/socket.js b/Public/socket.js new file mode 100644 index 0000000..00a0e3e --- /dev/null +++ b/Public/socket.js @@ -0,0 +1,30 @@ +var socket = io('http://192.168.0.25:3333'); + +function renderMessage(message) { + $('#messages').append(`
  • ${message.author}: ${message.content}
  • `); +} + +socket.on('previous-messages', function (messages) { + for (message of messages) { + renderMessage(message); + } +}); + +socket.on('receive-message', function (message) { + renderMessage(message); +}); + +$('#chat').submit(function (event) { + event.preventDefault(); + + var author = $('input[name=username]').val(); + var content = $('textarea[name=message]').val(); + + if (author.length && content.length) { + var messageObj = { author, content } + } + + renderMessage(messageObj); + + socket.emit('send-message', messageObj); +}); diff --git a/Source/Server.js b/Source/Server.js index 16c9a8c..5604260 100644 --- a/Source/Server.js +++ b/Source/Server.js @@ -29,11 +29,11 @@ let messages = []; io.on('connection', socket => { console.log(`Socket ${socket.id} connected`); - socket.emit('previousMessages', messages); + socket.emit('previous-messages', messages); - socket.on('sendMessage', data => { + socket.on('send-message', data => { messages.push(data); - socket.broadcast.emit('receiveMessage', data); + socket.broadcast.emit('receive-message', data); }) })