diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2015-06-28 20:36:10 +0200 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2015-06-29 15:14:52 +0200 |
commit | 8a2af53c8e83cd9258380fad4007e53f8721aa93 (patch) | |
tree | f1f76f9c7d0c6a09d1cdf139a6b4f43f5efb63bd /lib | |
parent | e1a99a83ca135523ff8513be756f156500999cb8 (diff) | |
download | rails-8a2af53c8e83cd9258380fad4007e53f8721aa93.tar.gz rails-8a2af53c8e83cd9258380fad4007e53f8721aa93.tar.bz2 rails-8a2af53c8e83cd9258380fad4007e53f8721aa93.zip |
More redis used for broadcasting into broadcasting concern
Diffstat (limited to 'lib')
-rw-r--r-- | lib/action_cable/server/base.rb | 4 | ||||
-rw-r--r-- | lib/action_cable/server/broadcasting.rb | 32 |
2 files changed, 18 insertions, 18 deletions
diff --git a/lib/action_cable/server/base.rb b/lib/action_cable/server/base.rb index 6dcd282e4a..e8109b325d 100644 --- a/lib/action_cable/server/base.rb +++ b/lib/action_cable/server/base.rb @@ -43,10 +43,6 @@ module ActionCable end end - def threaded_redis - @threaded_redis ||= Redis.new(redis_config) - end - def remote_connections @remote_connections ||= RemoteConnections.new(self) end diff --git a/lib/action_cable/server/broadcasting.rb b/lib/action_cable/server/broadcasting.rb index 682064571f..691ec1b486 100644 --- a/lib/action_cable/server/broadcasting.rb +++ b/lib/action_cable/server/broadcasting.rb @@ -1,28 +1,32 @@ module ActionCable module Server module Broadcasting + def broadcast(channel, message) + broadcaster_for(channel).broadcast(message) + end + def broadcaster_for(channel) Broadcaster.new(self, channel) end - def broadcast(channel, message) - broadcaster_for(channel).broadcast(message) - end + private + def redis_for_threads + @redis_for_threads ||= Redis.new(redis_config) + end - class Broadcaster - attr_reader :server, :channel, :redis - delegate :logger, to: :server + class Broadcaster + def initialize(server, channel) + @server, @channel = server, channel + end - def initialize(server, channel) - @server, @channel = server, channel - @redis = @server.threaded_redis - end + def broadcast(message, log: true) + server.logger.info "[ActionCable] Broadcasting to #{channel}: #{message}" if log + server.redis_for_threads.publish channel, message.to_json + end - def broadcast(message) - logger.info "[ActionCable] Broadcasting to #{channel}: #{message}" - redis.publish channel, message.to_json + private + attr_reader :server, :channel end - end end end end
\ No newline at end of file |