2

I have a Node server with SocketIO and several connections. How is it possible to disconnect an existing socket based on its ID? There are rooms, an admin in each room and other connections. My goal is to enable the admin socket to make any other socket disconnect based on its ID.

A workaround would be to send a message to the client-to-be-kicked to ping the server back: io.to(socketId).emit('commit-suicide!');, then it sends back an "I-am-so-suicid" message and the server calls socket.disconnect(). Now this is clearly not the optimal solution...

Gábor Imre
  • 5,899
  • 2
  • 35
  • 48

2 Answers2

8

On server side you can access io.sockets.connected which holds all connected sockets:

io.sockets.connected[socketId].disconnect();

DerM
  • 1,497
  • 1
  • 14
  • 27
0

You can hash it in a JSON object

See Socket#id:String

var json = {}; ... //create your serversocket, accept a connection json[Socket.id] = Socket

Community
  • 1
  • 1
ControlAltDel
  • 33,923
  • 10
  • 53
  • 80