These channels are called rooms.
Socket io rooms list.
Where you can save socket id or other identifier with rooms.
To leave a channel you call leave in the same fashion as join both methods are asynchronous and accept a callback argument.
Io sockets does not return an array unfortunately.
Rooms are used to further separate concerns.
I m not sure where i m going wrong.
One thing to keep in mind while using rooms is.
A server that integrates with or mounts on the node js http server socket io.
Within each namespace you can also define arbitrary channels that sockets can join and leave.
Here s a snippet of my code.
Rooms also share the same socket connection like namespaces.
Socket io is composed of two parts.
For your convenience each socket automatically joins a room identified by its id see socket id.
If you are using some db o nosql you can save it for distributed environments.
I m just getting strings of socket id s and not their names.
Without using namespace the following 3 parameters can all get sockets in a specific room.
The mechanics of joining rooms are handled by the adapter that has been configured see server adapter above defaulting to socket io adapter.
Were either incorrect or incomplete if you use 2 0.
After progress on the question how to create socket io multicast groups i found making rooms a great way to do what i needed.
A client library that loads on the browser side socket io client.
All the answers above and the one here socket io get rooms which socket is currently in or here socket io how do i get a list of connected sockets clients.
However it would be great to know about all the rooms without an ex.
Additonally if rooms list is temporary you can clean it whit controlled event after disconnecting.
In that case every socket in the room excluding the sender will get the event.
I m trying to get a list of created rooms in an application by using io sockets adapter rooms.
In 2 0 io sockets manager and io sockets clients don t exist anymore.
I know i could keep my own list using an array but don t think this is an optimal solution for 2 reasons.
During development socket io serves the client automatically for us as we ll see so for now we only have to install one module.
Each socket in socket io is identified by a random unguessable unique identifier socket id for your convenience each socket automatically joins a room identified by its own id.