Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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");
});
like image 626
Tamas Avatar asked Dec 20 '13 19:12

Tamas


2 Answers

'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();
});
like image 78
Nelson.li Avatar answered Oct 23 '22 03:10

Nelson.li


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

socket.close()
like image 42
Anish Sapkota Avatar answered Oct 23 '22 04:10

Anish Sapkota