Nuxt/examples/with-sockets/server.js

41 lines
991 B
JavaScript

import http from 'http'
import { Nuxt, Builder } from 'nuxt'
import express from 'express'
import SocketIO from 'socket.io'
const port = process.env.PORT || 3000
const isProd = process.env.NODE_ENV === 'production'
const app = express()
const server = http.createServer(app)
const io = SocketIO(server)
// We instantiate Nuxt.js with the options
let config = require('./nuxt.config.js')
config.dev = !isProd
const nuxt = new Nuxt(config)
// Start build process in dev mode
if (config.dev) {
const builder = new Builder(nuxt)
builder.build()
}
app.use(nuxt.render)
// Listen the server
server.listen(port, '0.0.0.0')
console.log('Server listening on localhost:' + port) // eslint-disable-line no-console
// Socket.io
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)
})
})