我有一个闭包
的事件处理程序halt = (socket, room) ->
(sid) ->
if sid is socket.id
socket.broadcast.to(room).emit 'halt'
每次套接字连接时,我都会将此侦听器附加到全局发射器。当套接字断开连接时,我想删除监听器。
@io.on 'connection', (socket) ->
haltFn = halt socket, 'kitchen'
emitter.on 'halt', haltFn
socket.on 'disconnect', ->
emitter.removeListener 'halt', haltFn
从日志中,我可以看到halt
内部的函数被调用了很多次连接已经发生,即使在一些断开连接之后。如何正确删除监听器?