How to get all the rooms
See original GitHub issue#1630 already adds support for .clients([room], fn);
to grab a list of socket ids in a room. I sent a PR to @FREEZX for adding the method .roomClients([socketid],fn)
as well to grab a list of rooms the socket id is in.
This was possible in 0.9.x with io.sockets.manager.roomClients[socket_id]
and it used to work across multiple nodes when used with RedisStore.
It was also possible to get a hash of all the rooms with io.sockets.manager.rooms
but I don’t see this available in 1.x. There is io.sockets.adapter.rooms
but that doesn’t work across nodes as far as I can see.
It is possible to get this data using the above two functions. First get all socket ids in room ‘’ then call roomClients repeatedly to get the rooms and merge those but it means making n calls to roomClients, where as it was as simple as reading the io.sockets.manager.rooms
object in 0.9.x
Issue Analytics
- State:
- Created 9 years ago
- Reactions:2
- Comments:9 (1 by maintainers)
Top GitHub Comments
i use io.sockets.adapter.rooms
@wangdalang can you please show code example and link to docs for that. I can’t seem to find it.