socket.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { Server } from 'socket.io'
  2. export default (_, nuxt) => {
  3. nuxt.hook('listen', server => {
  4. const io = new Server(server)
  5. nuxt.hook('close', () => io.close())
  6. io.on('connection', (socket) => {
  7. console.log('Connection', socket.id)
  8. })
  9. io.on('connect', (socket) => {
  10. socket.emit('message', `welcome ${socket.id}`)
  11. socket.broadcast.emit('message', `${socket.id} joined`)
  12. socket.on('joinRoom', (room) => {
  13. socket.join(room)
  14. socket.emit('message', `joinRoom ${room}`)
  15. socket.broadcast.to(room).emit('message', `${socket.id} joined ${room}`)
  16. })
  17. socket.on('newComment',
  18. function comment(message, room) {
  19. console.log('new comment received: %s', message)
  20. socket.broadcast.to(room).emit('newComment', { message })
  21. })
  22. socket.on('message',
  23. function message(data) {
  24. console.log('message received: %s', data)
  25. socket.broadcast.emit('message', { data })
  26. })
  27. socket.on('disconnecting',
  28. () => {
  29. console.log('disconnected', socket.id)
  30. socket.broadcast.emit('message', `${socket.id} left`)
  31. })
  32. })
  33. })
  34. }