No creo que pueda cancelar la suscripción en el cliente porque el cliente fue bloqueado. Escribí un script Ruby para mostrar cómo usar la cancelación de suscripción.
require 'redis'
r = Redis.new
r.subscribe 'first' do |on|
on.message do |e, d|
puts e
puts d
r.unsubscribe
end
end
puts "script was blocked?"
Si elimina r.unsubscribe, la secuencia de comandos se bloqueará. Y puede agregar la cláusula if para verificar cuándo cancelar la suscripción de client.ex:
r.unsubscribe if d == 'leave'