如何在Node.js/Socket.io应用程序中创建注销按钮

如何在Node.js/Socket.io应用程序中创建注销按钮,node.js,sockets,socket.io,Node.js,Sockets,Socket.io,我一直在node和Socket.io中开发一款在线游戏(基本上游戏的所有状态都在Socket.io中),但有一件事一直困扰着我。现在,用户必须关闭页面才能断开与服务器的连接。显然,这需要更加优雅,我需要一个正确的“注销”按钮 但就我的一生而言,我不知道如何制作一个。我在谷歌上搜索了一个答案,我已经梳理了这么多。我在Socket.io中挖掘了Socket对象,并尝试了以下3种相关的发声方法,即翻转Socket对象上的某个对象以断开该用户的连接: socket.disconnected = true

我一直在node和Socket.io中开发一款在线游戏(基本上游戏的所有状态都在Socket.io中),但有一件事一直困扰着我。现在,用户必须关闭页面才能断开与服务器的连接。显然,这需要更加优雅,我需要一个正确的“注销”按钮

但就我的一生而言,我不知道如何制作一个。我在谷歌上搜索了一个答案,我已经梳理了这么多。我在Socket.io中挖掘了Socket对象,并尝试了以下3种相关的发声方法,即翻转Socket对象上的某个对象以断开该用户的连接:

socket.disconnected = true;
      //and
socket.manager.connected[socket.id] = false;
      //and
socket.manager.open[socket.id] = false;

但这些都不能改变用户仍然保持连接的事实。这是怎么做到的

在客户端,您可以订阅断开连接事件:

socket.on('disconnect', function() {
  console.log('disconnected');
});
在服务器端也是如此,以确保您的逻辑意识到这种行为。 然后,为了允许用户手动断开连接,您可以直接关闭连接:

socket.disconnect();
或者,如果需要与服务器进行一些额外的交互,您可以向服务器发送消息“断开我的连接”,然后服务器将执行自己的操作,可以选择向客户端发送响应并调用
socket.disconnect()

试试socket.disconnect();就这样:)谢谢你!