如何删除io.socket命名空间事件?

时间:2015-04-16 22:32:03

标签: node.js events namespaces

如何简单地删除io.socket命名空间?

 delete io.nsps['/my_namespace'];

这并不能防止来自现有连接客户端的火灾事件。

确定点1)

 nsp= io.of('/my_namespace');
 nsp.removeAllListeners("my_event"); //this doesnt' work

2。)当然,我可以为此做一个if语句,但我认为这不是一个 干净的解决方案。

3.)我不知道如何使用命名空间执行此操作而不关闭用户的完整套接字(不仅仅是命名空间)。

我的问题是,当我关闭聊天并删除所有保存数组和内容时,我收到错误,因为事件仍然可以被触发(访问现在未定义的数组,当然我可以检查它们是否存在但是更容易只是阻止事件),比如发送或断开事件。由于安全问题,我不想在客户端阻止此事。

1 个答案:

答案 0 :(得分:1)

目前还不是很清楚你真正想要做什么。要停止获取传入套接字事件,您有许多选项:

  1. 删除所有套接字事件处理程序。
  2. 设置事件处理代码检查的标志,如果设置了标志,则跳过正常的代码执行。
  3. 断开该命名空间上的所有客户端并拒绝新连接。
  4. 与往常一样,如果您告诉我们您真正想要解决的问题,而不仅仅是询问您尝试实施的解决方案,我们可能会提供更好的答案。请参阅description of the XY Problem,了解为什么最好询问您的实际问题,而不是询问您尝试过的解决方案的问题。