Tamas
Tamas

Reputation: 11244

socket.io force disconnect client

I may be doing something wrong here but I can't get my head around this.

The following does not work:

client

$("#disconnectButton").click(function() {
  socket.emit("disconnect");
});

server

socket.on("disconnect", function() {
  console.log("this never gets called");
});

Can't I manually call the disconnect event from the client side? Because the following works:

client

$("#disconnectButton").click(function() {
  socket.emit("whatever");
});

server

socket.on("whatever", function() {
  socket.disconnect();
  console.log("this gets called and disconnects the client");
});

Upvotes: 11

Views: 13058

Answers (2)

Anish Sapkota
Anish Sapkota

Reputation: 814

For now, socket.emit('disconnect') or socket.disconnect() doesn't work. The correct syntax to disconnect to the socket server is

socket.close()

Upvotes: 1

Nelson.li
Nelson.li

Reputation: 581

'disconnect' event is Socket.io event,if you use emit to call the 'disconnect',may be cause other problom

so:

$("#disconnectButton").click(function() {
  socket.emit("disconnect");
});

replace:

$("#disconnectButton").click(function() {
  socket.disconnect();
});

Upvotes: 9

Related Questions