sockets.js 680 B

12345678910111213141516171819202122232425262728293031323334353637
  1. module.exports = {
  2. init (app, server, session) {
  3. let io = require('socket.io')(server)
  4. function setIoSockets (socket) {
  5. let users = app.get('io-users')
  6. if(socket.handshake.session.loggedIn) {
  7. users[socket.handshake.session.username] = socket.id
  8. app.set('io-users', users)
  9. }
  10. }
  11. app.set('io-users', {})
  12. io.use((socket, next) => {
  13. session(socket.handshake, {}, next)
  14. })
  15. io.on('connection', socket => {
  16. setIoSockets(socket)
  17. socket.on('join', room => {
  18. socket.join(room)
  19. })
  20. socket.on('leave', room => {
  21. socket.leave(room)
  22. })
  23. socket.on('accountEvent', _ => {
  24. socket.disconnect()
  25. })
  26. })
  27. app.set('io', io)
  28. }
  29. }