Ich glaube nicht, dass Sie das Abonnement im Client kündigen können, weil der Client blockiert wurde. Ich habe ein Ruby-Skript geschrieben, um zu zeigen, wie man das Abonnement kündigen kann.
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?"
Wenn Sie r.unsubscribe entfernen, wird das Skript blockiert. Und Sie können eine if-Klausel hinzufügen, um zu prüfen, wann client.ex gekündigt werden soll:
r.unsubscribe if d == 'leave'