socket.io强制断开客户端

时间:2013-12-20 19:42:21

标签: node.js sockets websocket socket.io

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

以下不起作用:

客户端

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

服务器

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

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

客户端

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

服务器

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

2 个答案:

答案 0 :(得分:8)

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

这样:

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

取代:

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

答案 1 :(得分:0)

目前,socket.emit('disconnect')socket.disconnect() 不起作用。 与套接字服务器断开连接的正确语法很简单

socket.close()