[NodeJS] Socket.io

smith_94·2022년 10월 13일
0

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;

0개의 댓글