Socket.io Socket.off()未按预期工作

Socket.io Socket.off()未按预期工作,socket.io,Socket.io,我试图将所有事件监听器从套接字中删除到特定事件,并在StackOveflow上找到了这一点 我按照答案进行操作,并尝试以下操作:socket.off('listenerName')从listenerName事件中删除所有侦听器,但此代码给了我一个错误: (node:27706) UnhandledPromiseRejectionWarning: TypeError [ERR_INVALID_ARG_TYPE]: The "listener" argument must be of type Fu

我试图将所有事件监听器从套接字中删除到特定事件,并在StackOveflow上找到了这一点

我按照答案进行操作,并尝试以下操作:
socket.off('listenerName')
listenerName
事件中删除所有侦听器,但此代码给了我一个错误:

(node:27706) UnhandledPromiseRejectionWarning: TypeError [ERR_INVALID_ARG_TYPE]: The "listener" argument must be of type Function. Received type undefined
我正在使用最新版本(2.3.0)的
socket.io
。看起来,
socket.off()
方法至少需要2个参数才能工作,我必须明确告诉它我要删除哪个函数。我试图搜索
socket.io
的文档来查找此函数的定义,但我发现
socket
继承了
emitter
的每个方法,包括
off()
方法


有人知道socket.io中是否有一个函数,我可以使用它从特定事件中删除所有侦听器,而无需显式地向它提供对最初添加的函数的引用吗?

我在另一个函数中找到了解决方案

我已通过以下操作成功从特定事件中删除了所有事件侦听器:

socket.removeAllListeners("news");

我不知道你是如何从一个引用
socket.off('event\u name')
amd
socket.off('event\u name',listener)
到你的
socket.off('listenerName')代码的答案中得到的。请仔细阅读。我认为您所说的只是一个命名问题,在下面的一行中,您将如何称呼
event\u name
<代码>套接字.on('disconnect',function(){})?因为我会调用
listenerName
断开连接字符串。通过使用socket.io 2.3.0执行socket.off('disconnect')
,我得到了上述错误。因此,如果我弄错了,
事件的名称
与我称之为
监听器名称
的名称不同,请原谅,我会更正我的答案。但如果不是,也许你应该在否决和评论之前仔细阅读。