Home > front end >  How to get the socket id when parsing through io.sockets.sockets
How to get the socket id when parsing through io.sockets.sockets

Time:11-03

I'm using Socket.io on a Node.js server.

for (connectedSocket of io.sockets.sockets) {
    console.log(`TEST: id = ${connectedSocket.id}`) //Why is this 'undefined'? All I want is the unique identifier of each socket in the server.
}

Not sure how to fix this, but it has to be super simple. Sorry about the fail code formatting :o

CodePudding user response:

As of socket.io v3, io.sockets is now a Map object as shown here. You can iterate it directly with:

for (let [id, socket] of io.sockets.entries()) {
    // can use socket here
}

You can use the newer interface:

let socketsArray = await io.fetchSockets();

to get you an array of connected sockets.

Note, you can also use fetchSockets() with rooms and namespaces as shown here.

  • Related