Update example

This commit is contained in:
Sébastien Chopin 2017-01-18 18:04:41 +01:00
parent 1051b733f9
commit ad14d7439e
4 changed files with 24 additions and 6 deletions

View File

@ -1,5 +1,14 @@
module.exports = { module.exports = {
build: { build: {
vendor: ['socket.io-client'] vendor: ['socket.io-client']
},
head: {
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' }
]
},
env: {
HOST_URL: process.env.HOST_URL || 'http://localhost:3000'
} }
} }

View File

@ -3,7 +3,7 @@
<ul class="pages"> <ul class="pages">
<li class="chat page"> <li class="chat page">
<div class="chatArea"> <div class="chatArea">
<ul class="messages"> <ul class="messages" ref="messages">
<li class="message" v-for="message in messages"><i :title="message.date">{{ message.date.split('T')[1].slice(0, -2) }}</i>: {{ message.text }}</li> <li class="message" v-for="message in messages"><i :title="message.date">{{ message.date.split('T')[1].slice(0, -2) }}</i>: {{ message.text }}</li>
</ul> </ul>
</div> </div>
@ -25,11 +25,17 @@ export default {
}) })
}) })
}, },
watch: {
'messages': 'scrollToBottom'
},
beforeMount () { beforeMount () {
socket.on('new-message', (message) => { socket.on('new-message', (message) => {
this.messages.push(message) this.messages.push(message)
}) })
}, },
mounted () {
this.scrollToBottom()
},
methods: { methods: {
sendMessage () { sendMessage () {
if (!this.message.trim()) return if (!this.message.trim()) return
@ -40,6 +46,11 @@ export default {
this.messages.push(message) this.messages.push(message)
this.message = '' this.message = ''
socket.emit('send-message', message) socket.emit('send-message', message)
},
scrollToBottom () {
this.$nextTick(() => {
this.$refs.messages.scrollTop = this.$refs.messages.scrollHeight
})
} }
}, },
head: { head: {

View File

@ -1,4 +1,4 @@
import io from 'socket.io-client' import io from 'socket.io-client'
const socket = io('http://localhost:3000') const socket = io(process.env.HOST_URL)
export default socket export default socket

View File

@ -22,17 +22,15 @@ if (config.dev) {
// Listen the server // Listen the server
server.listen(port, '0.0.0.0') server.listen(port, '0.0.0.0')
console.log('Server listening on localhost:' + port) console.log('Server listening on localhost:' + port) // eslint-disable-line no-console
// Socket.io // Socket.io
let messages = [] let messages = []
io.on('connection', (socket) => { io.on('connection', (socket) => {
console.log('New connection');
socket.on('last-messages', function (fn) { socket.on('last-messages', function (fn) {
fn(messages.slice(-50)) fn(messages.slice(-50))
}); });
socket.on('send-message', function (message) { socket.on('send-message', function (message) {
console.log('Message received', message);
messages.push(message) messages.push(message)
socket.broadcast.emit('new-message', message) socket.broadcast.emit('new-message', message)
}) })