mirror of
https://github.com/guilhermewerner/chat
synced 2025-06-16 19:34:19 +00:00
Complete initial features
This commit is contained in:
@ -57,10 +57,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="pt-4">
|
<div class="pt-4">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<ul class="list-group list-group-flush">
|
<ul class="list-group list-group-flush" id="messages">
|
||||||
<li class="list-group-item"><strong>Username:</strong> Message</li>
|
|
||||||
<li class="list-group-item"><strong>Username:</strong> Message</li>
|
|
||||||
<li class="list-group-item"><strong>Username:</strong> Message</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -84,16 +81,32 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var socket = io('http://localhost:3000');
|
var socket = io('http://localhost:3000');
|
||||||
|
|
||||||
|
function renderMessage(message) {
|
||||||
|
$('#messages').append(`<li class="list-group-item"><strong>${message.author}:</strong> ${message.content}</li>`);
|
||||||
|
}
|
||||||
|
|
||||||
|
socket.on('previousMessages', function (messages) {
|
||||||
|
for (message of messages) {
|
||||||
|
renderMessage(message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
socket.on('receiveMessage', function (message) {
|
||||||
|
renderMessage(message);
|
||||||
|
});
|
||||||
|
|
||||||
$('#chat').submit(function (event) {
|
$('#chat').submit(function (event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
||||||
var author = $('input[name=username]').val();
|
var author = $('input[name=username]').val();
|
||||||
var message = $('textarea[name=message]').val();
|
var content = $('textarea[name=message]').val();
|
||||||
|
|
||||||
if (author.length && message.length) {
|
if (author.length && content.length) {
|
||||||
var messageObj = { author, message }
|
var messageObj = { author, content }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
renderMessage(messageObj);
|
||||||
|
|
||||||
socket.emit('sendMessage', messageObj);
|
socket.emit('sendMessage', messageObj);
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
@ -7,7 +7,7 @@ const app = express();
|
|||||||
* Declare HTTP and Websocket protocols
|
* Declare HTTP and Websocket protocols
|
||||||
*/
|
*/
|
||||||
const server = require('http').createServer(app);
|
const server = require('http').createServer(app);
|
||||||
const socket = require('socket.io')(server);
|
const io = require('socket.io')(server);
|
||||||
|
|
||||||
app.use(express.static(path.join(__dirname, '../public')));
|
app.use(express.static(path.join(__dirname, '../public')));
|
||||||
|
|
||||||
@ -22,6 +22,19 @@ app.use('/', (req, res) => {
|
|||||||
res.render('index.html')
|
res.render('index.html')
|
||||||
});
|
});
|
||||||
|
|
||||||
app.listen(3000, () =>
|
let messages = [];
|
||||||
|
|
||||||
|
io.on('connection', socket => {
|
||||||
|
console.log(`Socket ${socket.id} connected`);
|
||||||
|
|
||||||
|
socket.emit('previousMessages', messages);
|
||||||
|
|
||||||
|
socket.on('sendMessage', data => {
|
||||||
|
messages.push(data);
|
||||||
|
socket.broadcast.emit('receiveMessage', data);
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
server.listen(3000, () =>
|
||||||
console.log(`Server listen on port: 3000`)
|
console.log(`Server listen on port: 3000`)
|
||||||
);
|
);
|
||||||
|
Reference in New Issue
Block a user