当前位置: 首页 > 面试题库 >

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

韩安顺
2023-03-14
问题内容

在解决如何创建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' ] }


 类似资料:
  • 问题内容: 我正在使用Linux Server并尝试安装Pdftk,但是在尝试弄清楚该怎么做时遇到了问题。 我找到了以下有关如何安装它的文档,但它们主要是指在本地Windows计算机上安装它。 它们是:http : //www.andrewheiss.com/blog/2009/07/29/installing-pdftk- php/ http://www.accesspdf.com/pdftk/

  • 我们有一个ftp服务器,下面只有很少的目录和文件,我可以通过浏览器连接并成功访问目录。但是,当使用同一服务器时:具有凭据的端口无法连接。还尝试使用JSR233采样器列出文件,但没有成功。 请引导。 TestPlan:FTP请求默认值(服务器IP和端口:21) 对于FTP请求,获取如下错误:响应消息:java。木卫一。FileNotFoundException:(系统找不到指定的路径)请求正在进行:

  • 问题内容: 我想列出ElasticSearch服务器上存在的所有索引。我尝试了这个: 但这给了我这个: 我想要所有索引的列表。 问题答案: 有关集群中所有索引的简要列表,请致电 这将为您提供索引及其别名的列表。 如果要打印精美,请添加: 如果调用索引和,结果将类似于以下内容:

  • 我想列出ElasticSearch服务器上存在的所有索引。我试过这个: 但它给了我这个: 我想要所有索引的列表。

  • 我正在使用一个AmazonUbuntuEC2实例,它只有一个命令行界面。我想为该服务器设置UI,以便使用远程桌面工具进行访问。有没有办法将GUI应用于EC2实例?

  • 我在C:\glassfish3目录中安装了GlassFish服务器。 当我在C:\glassfish3\bin目录中键入“dir”时,文件就会被列出。 但是当我输入asadmin时,我得到“系统找不到指定的路径”。 可能出了什么问题? 如何启动GlassFish服务器? --编辑-- 此外,在安装后,我得到: 创建域 执行命令:C:\glassfish3\glassfish\bin\asadmin