0

I want to get back the list of rooms so i can put a drop down to my client side code . So when a new user visits he gets the list of all the active rooms in drop down.

So how do I get the list of active rooms in socket.io ?

This is my code .

const { addUser, removeUser, getUser, getUsersRoom } = require('./users.js');


const PORT = process.env.PORT || 5000

const app = express()
const server = http.createServer(app)
const io = socketio(server)


io.on('connection', (socket) => {
    console.log('we have a new connection !!!');

    //*USER JOIN

    socket.on('join', ({ name, room }, callback) => {


        const { error, user } = addUser({ id: socket.id, name, room })
        if (error) {
            return callback(error)
        }

        socket.emit('message', { user: 'admin', text: `${user.name}, Welcome to the room ${user.room}` }) 
        socket.broadcast.to(user.room).emit('message', { user: 'admin', text: `${user.name}, has joined.` }) 
        socket.join(user.room);

        io.to(user.room).emit('roomData', { room: user.room, users: getUsersRoom(user.room) }) 


        callback() 

    })

    socket.on('sendMessage', (message, callback) => {
        const user = getUser(socket.id)
        io.to(user.room).emit('message', { user: user.name, text: message }) 
        callback()
    })


    socket.on('disconnect', () => {
        const user = removeUser(socket.id)
        console.log('a user left !!!');
        if (user) {
            io.to(user.room).emit('message', { user: 'admin', text: `${user.name} has left.` })
            io.to(user.room).emit('roomData', { room: user.room, users: getUsersRoom(user.room) }) 

        }
    })

})

app.use(router)

server.listen(PORT, () => {
    console.log(`Server is up in running on port ${PORT}`);

})
  • 1
    Similar post: https://stackoverflow.com/questions/6631501/how-to-list-rooms-on-socket-io-nodejs-server This might solve your problem. – 林志恒 Jun 08 '20 at 15:29
  • Does this answer your question? [how to list rooms on socket.io nodejs server](https://stackoverflow.com/questions/6631501/how-to-list-rooms-on-socket-io-nodejs-server) – Ryan Soderberg Jun 08 '20 at 16:59

0 Answers0