socket.io强制断开客户端

Tam*_*mas 11 sockets websocket node.js socket.io

我可能在这里做错了但我无法理解这一点.

以下不起作用:

客户

$("#disconnectButton").click(function() {
  socket.emit("disconnect");
});
Run Code Online (Sandbox Code Playgroud)

服务器

socket.on("disconnect", function() {
  console.log("this never gets called");
});
Run Code Online (Sandbox Code Playgroud)

我不能从客户端手动调用disconnect事件吗?因为以下工作:

客户

$("#disconnectButton").click(function() {
  socket.emit("whatever");
});
Run Code Online (Sandbox Code Playgroud)

服务器

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

小智 8

'disconnect'事件是Socket.io事件,如果你使用emit来调用'disconnect',可能会导致其他问题

所以:

$("#disconnectButton").click(function() {
  socket.emit("disconnect");
});
Run Code Online (Sandbox Code Playgroud)

更换:

$("#disconnectButton").click(function() {
  socket.disconnect();
});
Run Code Online (Sandbox Code Playgroud)