Como remover Redis em 'mensagem' ouvintes

Um exemplo típico do chat Redis será algo assim (vejahttps://github.com/emrahayanoglu/Socket.io-Redis-RealTime-Chat-Example/blob/master/chatServer.js por apenas um desses exemplos):

io.sockets.on('connection', function (client) { //websocket connection

  redis1.subscribe("chat");

  redis1.on("message", function(channel, message) {
      console.log(message);
      client.send(message);
  });

  client.on('message', function(msg) {
    redis2.publish("chat",msg.message);  
  });

  client.on('disconnect', function() {
      redis1.quit();
  });
});

No entanto, a questão aqui é que quando umclient 'desconectar', oredis1.on('message',FUNC(){}) O ouvinte ainda está conectado. O console continuará a imprimir omessage. Se alguém fosse inspecionar os participantes do eventoredis1, eles ainda achariam a função anônima escutando.

A questão é que não háredis1.off(...) função. Então, como é que um unbind / unsubscribe / delete / remove o listener de mensagens de redis?

Nota: Não é possível fazer apenas redis1.end (), pois isso quebrará a conexão de vermelho para outros usuários conectados ao websocket.