如何在socket.io nodejs服务器上列出房间

在解决如何创建socket.io多播组的问题上取得进展之后,我发现将房间作为完成我需要的工作的好方法。

但是,很高兴知道所有房间,而无需额外的数据结构。

是否可以从服务器套接字获取服务器上所有房间的列表?

回答:

简短的答案:

io.sockets.adapter.rooms

我分析了io

我得到以下输出:

{ 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] } }

从单个客户加入“ public-alfred”会议室后,其中io.sockets.adapter.rooms包含:

 { '': [ '210837319844898486' ],

'/public-alfred': [ '210837319844898486' ] }

以上是 如何在socket.io nodejs服务器上列出房间 的全部内容, 来源链接: utcz.com/qa/410360.html

回到顶部