server.js
const sessionMiddleware = session({
    resave: false,
    saveUninitialized: false,
    secret: process.env.COOKIE_SECRET,
    cookie: {
        httpOnly: true,
        secure: false
    }
});
app.use(sessionMiddleware);
io.js
const {Server} = require('socket.io');
module.exports = (server, app, sessionMiddleware) => {
    const io = new Server(server, {
        path: '/socket.io',
        cors: {
            origin: '*',
            credentials: true
        }
    });
    const namespace = io.of('/namespace');
    app.set('io', io);
    io.use((socket, next) => {
        sessionMiddleware(socket.request, socket.request.res || {}, next);
    });
    namespace.on('connect', (socket) => {
        console.log('user connected');
        
        socket.join(room);
        socket.on('event-name', (data) => {
            namespace.to(room).emit('event-name', { data });
        });
        socket.on('disconnect', () => console.log('user disconnected'));
    });
    return io;
}
router.js
const express = require('express');
const router = express.Router();
router.get('/', (req, res, next) => {
		req.app.get('io').of('/namespace').to(room).emit('event-name', {});
});
module.exports = router;