123456789101112131415161718192021222324252627282930313233343536373839 |
- let sharedSession = require("express-socket.io-session")
- module.exports = {
- init (app, server, session) {
- let io = require('socket.io')(server)
- function setIoSockets (socket) {
- let users = app.get('io-users')
- if(socket.handshake.session.loggedIn) {
- users[socket.handshake.session.username] = socket.id
- app.set('io-users', users)
- }
- }
- app.set('io-users', {})
- io.use(sharedSession(session, {
- autoSave: true
- }))
- io.on('connection', socket => {
- setIoSockets(socket)
- socket.on('join', room => {
- socket.join(room)
- })
- socket.on('leave', room => {
- socket.leave(room)
- })
- socket.on('login', _ => {
- setIoSockets(socket)
- })
- })
- app.set('io', io)
- }
- }
|