Add #perform_disconnection to have a place for both callbacks and logging

And using an unlikely-to-clash name.
上级 a44033e6
......@@ -56,11 +56,9 @@ def run_subscribe_callbacks
send(callback)
end
end
def run_unsubscribe_callbacks
self.class.on_unsubscribe_callbacks.each do |callback|
send(callback)
end
def perform_disconnection
run_unsubscribe_callbacks
logger.info "#{self.class.name} disconnected"
end
protected
......@@ -89,6 +87,11 @@ def broadcast(data)
end
end
private
def run_unsubscribe_callbacks
self.class.on_unsubscribe_callbacks.each { |callback| send(callback) }
end
def start_periodic_timers
self.class.periodic_timers.each do |callback, options|
@_active_periodic_timers << EventMachine::PeriodicTimer.new(options[:every]) do
......
......@@ -81,7 +81,7 @@ def received_data(data)
def cleanup_subscriptions
@subscriptions.each do |id, channel|
channel.run_unsubscribe_callbacks
channel.perform_disconnection
end
end
......@@ -161,7 +161,7 @@ def process_message(message)
def unsubscribe_channel(data)
logger.info "Unsubscribing from channel: #{data['identifier']}"
@subscriptions[data['identifier']].run_unsubscribe_callbacks
@subscriptions[data['identifier']].perform_disconnection
@subscriptions.delete(data['identifier'])
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册