SocketIO: disconnect client by socket id?

2019-02-19 17:31发布

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...

2条回答
我只想做你的唯一
2楼-- · 2019-02-19 18:01

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

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

查看更多
混吃等死
3楼-- · 2019-02-19 18:05

You can hash it in a JSON object

See Socket#id:String

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

查看更多
登录 后发表回答