1
0
mirror of https://github.com/nuxt/nuxt.git synced 2024-12-20 03:07:13 +00:00
Nuxt/examples/with-sockets/io/index.js
2017-10-20 10:50:22 +03:30

25 lines
806 B
JavaScript

module.exports = function () {
const server = require('http').createServer(this.nuxt.renderer.app)
const io = require('socket.io')(server)
// overwrite nuxt.listen()
this.nuxt.listen = (port, host) => new Promise((resolve) => server.listen(port || 3000, host || 'localhost', resolve))
// close this server on 'close' event
this.nuxt.plugin('close', () => new Promise((resolve) => server.close(resolve)))
// Add `socket.io-client` in vendor
this.addVendor('socket.io-client')
// Add socket.io events
let messages = []
io.on('connection', (socket) => {
socket.on('last-messages', function (fn) {
fn(messages.slice(-50))
})
socket.on('send-message', function (message) {
messages.push(message)
socket.broadcast.emit('new-message', message)
})
})
}