lib/websocket_rails/channel_manager.rb in websocket-rails-0.6.2 vs lib/websocket_rails/channel_manager.rb in websocket-rails-0.7.0

- old
+ new

@@ -1,5 +1,7 @@ +require 'redis-objects' + module WebsocketRails class << self def channel_manager @@ -8,17 +10,31 @@ def [](channel) channel_manager[channel] end + def channel_tokens + channel_manager.channel_tokens + end + end class ChannelManager attr_reader :channels def initialize @channels = {}.with_indifferent_access + end + + def channel_tokens + @channel_tokens ||= begin + if WebsocketRails.synchronize? + ::Redis::HashKey.new('websocket_rails.channel_tokens', Synchronization.redis) + else + {} + end + end end def [](channel) @channels[channel] ||= Channel.new channel end