【问题标题】:How to create a logout button in Node.js/Socket.io app如何在 Node.js/Socket.io 应用程序中创建注销按钮
【发布时间】:2013-07-04 17:43:22
【问题描述】:

我一直在用 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.disconnect();
  • 就是这样 :) 谢谢!

标签: node.js sockets socket.io


【解决方案1】:

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

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

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

socket.disconnect();

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 2014-08-04
    • 2012-01-20
    • 2015-06-10
    • 1970-01-01
    • 2023-03-09
    • 2012-12-30
    相关资源
    最近更新 更多