0

My English is a little bad sorry

I am trying to get all connected clients data

Sample;

var a_sockets           =   io.sockets.clients();

console.log(a_sockets);

Return ;

Namespace {
  name: '/',
  server:
   Server {
     nsps: { '/': [Circular] },
     parentNsps: Map {},
     _path: '/socket.io',
     _serveClient: true,
     parser:
      { protocol: 4,
        types: [Array],
        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: [Circular],
     eio:
      Server {
        clients: [Object],
        clientsCount: 1,
        wsEngine: 'ws',
        pingTimeout: 5000,
        pingInterval: 25000,
        upgradeTimeout: 10000,
        maxHttpBufferSize: 100000000,
        transports: [Array],
        allowUpgrades: true,
        allowRequest: [Function: bound ],
        cookie: 'io',
        cookiePath: '/',
        cookieHttpOnly: true,
        perMessageDeflate: [Object],
        httpCompression: [Object],
        initialPacket: [Array],
        ws: [WebSocketServer],
        _events: [Object],
        _eventsCount: 1 },
     httpServer:
      Server {
        _events: [Object],
        _eventsCount: 5,
        _maxListeners: undefined,
        _connections: 1,
        _handle: [TCP],
        _usingWorkers: false,
        _workers: [],
        _unref: false,
        allowHalfOpen: true,
        pauseOnConnect: false,
        httpAllowHalfOpen: false,
        timeout: 120000,
        keepAliveTimeout: 5000,
        _pendingResponseData: 0,
        maxHeadersCount: null,
        headersTimeout: 40000,
        _connectionKey: '6::::9999',
        [Symbol(IncomingMessage)]: [Function],
        [Symbol(ServerResponse)]: [Function],
        [Symbol(asyncId)]: 5 },
     engine:
      Server {
        clients: [Object],
        clientsCount: 1,
        wsEngine: 'ws',
        pingTimeout: 5000,
        pingInterval: 25000,
        upgradeTimeout: 10000,
        maxHttpBufferSize: 100000000,
        transports: [Array],
        allowUpgrades: true,
        allowRequest: [Function: bound ],
        cookie: 'io',
        cookiePath: '/',
        cookieHttpOnly: true,
        perMessageDeflate: [Object],
        httpCompression: [Object],
        initialPacket: [Array],
        ws: [WebSocketServer],
        _events: [Object],
        _eventsCount: 1 } },
  sockets:
   { '71kTaZqD9WLFgyC0AAAA':
      Socket {
        nsp: [Circular],
        server: [Server],
        adapter: [Adapter],
        id: '71kTaZqD9WLFgyC0AAAA',
        client: [Client],
        conn: [Socket],
        rooms: {},
        acks: {},
        connected: true,
        disconnected: false,
        handshake: [Object],
        fns: [],
        flags: {},
        _rooms: [],
        userId:
         '8580af1b5f364c98a20a49185e018412642e92efb79421734881b53e1e1b18b6_t' } },
  connected:
   { '71kTaZqD9WLFgyC0AAAA':
      Socket {
        nsp: [Circular],
        server: [Server],
        adapter: [Adapter],
        id: '71kTaZqD9WLFgyC0AAAA',
        client: [Client],
        conn: [Socket],
        rooms: {},
        acks: {},
        connected: true,
        disconnected: false,
        handshake: [Object],
        fns: [],
        flags: {},
        _rooms: [],
        **userId:
         '8580af1b5f364c98a20a49185e018412642e92efb79421734881b53e1e1b18b6_t'** } },
  fns: [],
  ids: 0,
  rooms: [],
  flags: {},
  adapter:
   Adapter {
     nsp: [Circular],
     rooms: { '71kTaZqD9WLFgyC0AAAA': [Room] },
     sids: { '71kTaZqD9WLFgyC0AAAA': [Object] },
     encoder: Encoder {} },
  _events: [Object: null prototype] { connection: [Function] },
  _eventsCount: 1 }

just want to get userId data.

I want take it [ Connected -> userId ]

So I can compare users How can I solve this problem? I apologize again for my english

Thanks.

I would be very happy if you could help me. I wish you a good day

1 Answers1

0

Short answer(assuming you are using version >=1.0):

var srvSockets = io.sockets.sockets;
Object.keys(srvSockets);
DEVCNN
  • 614
  • 4
  • 13
  • Thanks. But this code is just giving the socket id I would like to get the value that I assigned to myself https://imgur.com/JYpQapZ – user3030909 Mar 21 '19 at 07:21
  • For that you have to emit the value that you assign to the client on connection and subscribe to the emit event. That information isn't passed in the connection to the socket. – DEVCNN Mar 21 '19 at 10:19