gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 00:56:13 24 4
gpt4 key购买 nike

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

 delete io.nsps['/my_namespace'];

这不会阻止现有连接的客户端触发事件。

确定第 1 点)

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

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

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

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

最佳答案

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

  1. 删除所有套接字事件处理程序。
  2. 设置一个标志以供事件处理代码检查,如果设置了该标志,则会跳过正常的代码执行。
  3. 断开该命名空间上所有客户端的连接并拒绝新连接。

一如既往,如果您告诉我们您真正想要解决的问题是什么,而不是仅仅询问您想要实现的解决方案,我们也许能够提供更好的答案。查看description of the XY Problem讨论为什么询问您的实际问题可能比询问您尝试的解决方案中的问题更好。

关于node.js - 如何删除 io.socket 命名空间事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29687116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com