クライアントがブロックされたため、クライアントで登録解除を発行できるとは思いません。登録解除の使用方法を示すルビースクリプトを作成しました。
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?"
r.unsubscribeを削除すると、スクリプトがブロックされます。また、if句を追加して、client.exの購読を解除するタイミングを確認できます。
r.unsubscribe if d == 'leave'