为了账号安全,请及时绑定邮箱和手机立即绑定

nodejs的io中的io.sockets.adapter.rooms在哪里?

nodejs的io中的io.sockets.adapter.rooms在哪里?

斯蒂芬大帝 2023-06-09 14:54:13
简短的回答:io.sockets.adapter.rooms我分析了io:如该答案所示,来自 io 的套接字输出部分包含以下内容:sockets:    { manager: [Circular],     name: '',     sockets: { '210837319844898486': [Object] },     auth: false,     flags: { endpoint: '', exceptions: [] },     _events: { connection: [Function] } },在哪里adapter?在哪里rooms?从输出中找出适配器和房间的方法是什么io?
查看完整描述

3 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

我认为您在加入之前试图获得空间。首先,您必须加入房间,然后才能进入房间io.sockets.adapter.rooms

let room_id = 111


io.sockets.on("connection", function (socket) {

    // Everytime a client logs in, display a connected message

    console.log("Server-Client Connected!");

    socket.join("_room" + room_id);

    socket.on('connected', function (data) {


    });

    console.log(io.sockets.adapter.rooms);

    socket.on('qr_code_scan', function (room_id) {

        io.sockets.in("_room" + room_id).emit("qr_code_scan", true);

    });

});


的记录io.sockets.adapter.rooms


{bjYiUV5YZy54VedKAAAA: Room, _room111: Room}

app.js:55

_room111:Room {sockets: {…}, length: 1}

length:1

sockets:{-isBAZIB-Sm3jArgAAAB: true}

-isBAZIB-Sm3jArgAAAB:true

__proto__:Object

__proto__:Object

-isBAZIB-Sm3jArgAAAB:Room {sockets: {…}, length: 1}

length:1

sockets:{-isBAZIB-Sm3jArgAAAB: true}

-isBAZIB-Sm3jArgAAAB:true

__proto__:Object

__proto__:Object

__proto__:Object


查看完整回答
反对 回复 2023-06-09
?
子衿沉夜

TA贡献1828条经验 获得超3个赞

对于“socket.io”的当前版本:“^4.1.2”,

io.sockets.adapter.rooms

是这样的地图:

Map(2) { 'hgdAp3ghn1RQZk3iAAAD' => Set(1) { 'hgdAp3ghn1RQZk3iAAAD' }, 'test' => Set(1) { 'hgdAp3ghn1RQZk3iAAAD' } }

当房间已经存在时,在本例中为“测试”。

如果您在创建房间之前调用它,那么它将是:

Map(1) { 'w2e2Vnav-zmf6pm4AAAD' => Set(1) { 'w2e2Vnav-zmf6pm4AAAD' } }

因此,长答案是它取决于您使用的版本,对于 4.x 版,房间只会在用户加入房间后成为地图的一部分,而不是之前。


查看完整回答
反对 回复 2023-06-09
?
POPMUISE

TA贡献1765条经验 获得超5个赞

我不确定该响应是怎么回事。但我可以确认,当我使用 socket.io@2.1.1 和 console.log(io) 运行基本的 socket.io 示例时,我在终端中看到以下内容:

Server {

  nsps: {

    '/': Namespace {

      name: '/',

      server: [Circular],

      sockets: [Object],

      connected: [Object],

      fns: [],

      ids: 0,

      rooms: [],

      flags: {},

      adapter: [Adapter],

      _events: [Object: null prototype],

      _eventsCount: 1

    }

  },

  parentNsps: Map {},

  _path: '/socket.io',

  _serveClient: true,

  parser: {

    protocol: 4,

    types: [

      'CONNECT',

      'DISCONNECT',

      'EVENT',

      'ACK',

      'ERROR',

      'BINARY_EVENT',

      'BINARY_ACK'

    ],

    CONNECT: 0,

    DISCONNECT: 1,

    EVENT: 2,

    ACK: 3,

    ERROR: 4,

    BINARY_EVENT: 5,

    BINARY_ACK: 6,

    Encoder: [Function: Encoder],

    Decoder: [Function: Decoder]

  },

  encoder: Encoder {},

  _adapter: [Function: Adapter],

  _origins: '*:*',

  sockets: Namespace {

    name: '/',

    server: [Circular],

    sockets: { WFrro9MpS4d1nSouAAAA: [Socket] },

    connected: { WFrro9MpS4d1nSouAAAA: [Socket] },

    fns: [],

    ids: 0,

    rooms: [],

    flags: {},

    adapter: Adapter {

      nsp: [Circular],

      rooms: [Object],

      sids: [Object],

      encoder: Encoder {}

    },

    _events: [Object: null prototype] { connection: [Array] },

    _eventsCount: 1

  },

  eio: Server {

    clients: { WFrro9MpS4d1nSouAAAA: [Socket] },

    clientsCount: 1,

    wsEngine: 'ws',

    pingTimeout: 5000,

    pingInterval: 25000,

    upgradeTimeout: 10000,

    maxHttpBufferSize: 100000000,

    transports: [ 'polling', 'websocket' ],

    allowUpgrades: true,

    allowRequest: [Function: bound ],

    cookie: 'io',

    cookiePath: '/',

    cookieHttpOnly: true,

    perMessageDeflate: { threshold: 1024 },

    httpCompression: { threshold: 1024 },

    initialPacket: [ '0' ],

    ws: WebSocketServer {

      _events: [Object: null prototype] {},

      _eventsCount: 0,

      _maxListeners: undefined,

      options: [Object],

      [Symbol(kCapture)]: false

    },

    _events: [Object: null prototype] { connection: [Function: bound ] },

    _eventsCount: 1

  },

  httpServer: Server {

    insecureHTTPParser: undefined,

    _events: [Object: null prototype] {

      connection: [Function: connectionListener],

      close: [Function: bound ],

      listening: [Function: bound ],

      upgrade: [Function],

      request: [Function]

    },

    _eventsCount: 5,

    _maxListeners: undefined,

    _connections: 2,

    _handle: TCP {

      reading: false,

      onconnection: [Function: onconnection],

      [Symbol(owner_symbol)]: [Circular]

    },

    _usingWorkers: false,

    _workers: [],

    _unref: false,

    allowHalfOpen: true,

    pauseOnConnect: false,

    httpAllowHalfOpen: false,

    timeout: 120000,

    keepAliveTimeout: 5000,

    maxHeadersCount: null,

    headersTimeout: 60000,

    _connectionKey: '6::::8080',

    [Symbol(IncomingMessage)]: [Function: IncomingMessage],

    [Symbol(ServerResponse)]: [Function: ServerResponse],

    [Symbol(kCapture)]: false,

    [Symbol(asyncId)]: 6

  },

  engine: Server {

    clients: { WFrro9MpS4d1nSouAAAA: [Socket] },

    clientsCount: 1,

    wsEngine: 'ws',

    pingTimeout: 5000,

    pingInterval: 25000,

    upgradeTimeout: 10000,

    maxHttpBufferSize: 100000000,

    transports: [ 'polling', 'websocket' ],

    allowUpgrades: true,

    allowRequest: [Function: bound ],

    cookie: 'io',

    cookiePath: '/',

    cookieHttpOnly: true,

    perMessageDeflate: { threshold: 1024 },

    httpCompression: { threshold: 1024 },

    initialPacket: [ '0' ],

    ws: WebSocketServer {

      _events: [Object: null prototype] {},

      _eventsCount: 0,

      _maxListeners: undefined,

      options: [Object],

      [Symbol(kCapture)]: false

    },

    _events: [Object: null prototype] { connection: [Function: bound ] },

    _eventsCount: 1

  }

随着房间io.sockets.adapter.rooms。


查看完整回答
反对 回复 2023-06-09
  • 3 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信