Non penso che tu possa emettere unsubscribe nel client perché il client è stato bloccato. Ho scritto uno script Ruby per mostrare come usare unsubscribe.
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?"
Se rimuovi r.unsubscribe, lo script verrà bloccato. E puoi aggiungere if clausola per verificare quando annullare l'iscrizione client.ex:
r.unsubscribe if d == 'leave'