after progress on the question how to create socket.io multicast groups, I found making rooms a great way to do what I needed.
However, it would be great to know about all the rooms, without an extra data-structure.
Is it possible to get a list of all rooms on the server from the server socket?
The short answer:
io.sockets.adapter.rooms
I analysed io
:
I got the following output:
{ server: { stack: [ [Object], [Object], [Object], [Object], [Object], [Object] ], connections: 3, allowHalfOpen: true, watcher: { host: [Circular], callback: [Function] }, _events: { request: [Function], connection: [Function: connectionListener], listening: [Object], upgrade: [Object] }, httpAllowHalfOpen: false, cache: {}, settings: { home: '/', env: 'development', hints: true }, redirects: {}, isCallbacks: {}, _locals: { settings: [Object], app: [Circular] }, dynamicViewHelpers: {}, errorHandlers: [], route: '/', routes: { app: [Circular], routes: [Object], params: {}, _params: [], middleware: [Function] }, router: [Getter], __usedRouter: true, type: 'tcp4', fd: 7 }, namespaces: { '': { manager: [Circular], name: '', sockets: [Object], auth: false, flags: [Object], _events: [Object] } }, sockets: { manager: [Circular], name: '', sockets: { '210837319844898486': [Object] }, auth: false, flags: { endpoint: '', exceptions: [] }, _events: { connection: [Function] } }, settings: { origins: '*:*', log: true, store: { options: undefined, clients: [Object], manager: [Circular] }, logger: { colors: true, level: 1 }, heartbeats: true, resource: '/socket.io', transports: [ 'websocket', 'htmlfile', 'xhr-polling', 'jsonp-polling' ], authorization: [Function], 'log level': 1, 'close timeout': 25, 'heartbeat timeout': 15, 'heartbeat interval': 20, 'polling duration': 20, 'flash policy server': true, 'flash policy port': 843, 'destroy upgrade': true, 'browser client': true, 'browser client minification': false, 'browser client etag': false, 'browser client handler': false, 'client store expiration': 15 }, handshaken: { '210837319844898486': { headers: [Object], address: [Object], time: 'Mon Jul 18 2011 00:53:27 GMT+0200 (CEST)', xdomain: false, secure: undefined, PHPSESSID: '7qo6cht3q0rskhfes4eesb2d05' } }, connected: { '210837319844898486': true }, open: { '210837319844898486': true }, closed: {}, closedA: [], rooms: { '': [ '210837319844898486' ], '/public-alfred': [ '210837319844898486' ] }, roomClients: { '210837319844898486': [ '': true, '/public-alfred': true ] }, oldListeners: [ [Function] ], _events: { 'set:origins': [Function], 'set:flash policy port': [Function], 'set:transports': [Function] } }
after joining room "public-alfred" from a single client io.sockets.adapter.rooms
contained:
{ '': [ '210837319844898486' ], '/public-alfred': [ '210837319844898486' ] }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With