我可能在这里做错了但是我无法理解这一点。
以下不起作用:
客户端
$("#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");
});
答案 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()