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

时间:2013-07-02 07:47:33

标签: node.js sockets socket.io

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

但是对于我的生活,我无法弄清楚如何制作一个。我在Google上搜索了一个答案,我已经梳理了SO。我在Socket.io中挖掘了Socket对象,我尝试了这三种相关的声音方法,在Socket对象上翻转东西以断开该用户的连接:

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

但这些都没有改变用户仍然连接的事实。这是怎么做到的?

1 个答案:

答案 0 :(得分:0)

在客户端,您可能会订阅断开事件:

socket.on('disconnect', function() {
  console.log('disconnected');
});

在服务器端相同,以确保您的逻辑知道此类行为。 然后,为了允许用户手动断开连接,您实际上可以直接关闭连接:

socket.disconnect();

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