Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f7f096b

Browse files
author
Andrew Mead
committed
Lesson: Sending Messages to Rooms
1 parent d410965 commit f7f096b

File tree

4 files changed

+16
-10
lines changed

4 files changed

+16
-10
lines changed

chat-app/public/chat.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
<div class="compose">
1919
<form id="message-form">
20-
<input name="message" placeholder="Message">
20+
<input name="message" placeholder="Message" required autocomplete="off">
2121
<button>Send</button>
2222
</form>
2323
<button id="send-location">Send location</button>
@@ -28,7 +28,7 @@
2828
<script id="message-template" type="text/html">
2929
<div class="message">
3030
<p>
31-
<span class="message__name">Some User Name</span>
31+
<span class="message__name">{{username}}</span>
3232
<span class="message__meta">{{createdAt}}</span>
3333
</p>
3434
<p>{{message}}</p>
@@ -38,7 +38,7 @@
3838
<script id="location-message-template" type="text/html">
3939
<div class="message">
4040
<p>
41-
<span class="message__name">Some User Name</span>
41+
<span class="message__name">{{username}}</span>
4242
<span class="message__meta">{{createdAt}}</span>
4343
</p>
4444
<p><a href="{{url}}" target="_blank">My current location</a></p>

chat-app/public/js/chat.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ const { username, room } = Qs.parse(location.search, { ignoreQueryPrefix: true }
1717
socket.on('message', (message) => {
1818
console.log(message)
1919
const html = Mustache.render(messageTemplate, {
20+
username: message.username,
2021
message: message.text,
2122
createdAt: moment(message.createdAt).format('h:mm a')
2223
})
@@ -26,6 +27,7 @@ socket.on('message', (message) => {
2627
socket.on('locationMessage', (message) => {
2728
console.log(message)
2829
const html = Mustache.render(locationMessageTemplate, {
30+
username: message.username,
2931
url: message.url,
3032
createdAt: moment(message.createdAt).format('h:mm a')
3133
})

chat-app/src/index.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,33 +27,35 @@ io.on('connection', (socket) => {
2727

2828
socket.join(user.room)
2929

30-
socket.emit('message', generateMessage('Welcome!'))
31-
socket.broadcast.to(user.room).emit('message', generateMessage(`${user.username} has joined!`))
30+
socket.emit('message', generateMessage('Admin', 'Welcome!'))
31+
socket.broadcast.to(user.room).emit('message', generateMessage('Admin', `${user.username} has joined!`))
3232

3333
callback()
3434
})
3535

3636
socket.on('sendMessage', (message, callback) => {
37+
const user = getUser(socket.id)
3738
const filter = new Filter()
3839

3940
if (filter.isProfane(message)) {
4041
return callback('Profanity is not allowed!')
4142
}
4243

43-
io.to('Center City').emit('message', generateMessage(message))
44+
io.to(user.room).emit('message', generateMessage(user.username, message))
4445
callback()
4546
})
4647

4748
socket.on('sendLocation', (coords, callback) => {
48-
io.emit('locationMessage', generateLocationMessage(`https://google.com/maps?q=${coords.latitude},${coords.longitude}`))
49+
const user = getUser(socket.id)
50+
io.to(user.room).emit('locationMessage', generateLocationMessage(user.username, `https://google.com/maps?q=${coords.latitude},${coords.longitude}`))
4951
callback()
5052
})
5153

5254
socket.on('disconnect', () => {
5355
const user = removeUser(socket.id)
5456

5557
if (user) {
56-
io.to(user.room).emit('message', generateMessage(`${user.username} has left!`))
58+
io.to(user.room).emit('message', generateMessage('Admin', `${user.username} has left!`))
5759
}
5860
})
5961
})

chat-app/src/utils/messages.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
const generateMessage = (text) => {
1+
const generateMessage = (username, text) => {
22
return {
3+
username,
34
text,
45
createdAt: new Date().getTime()
56
}
67
}
78

8-
const generateLocationMessage = (url) => {
9+
const generateLocationMessage = (username, url) => {
910
return {
11+
username,
1012
url,
1113
createdAt: new Date().getTime()
1214
}

0 commit comments

Comments
 (0)