Sha256: 52da6784c3124a63b9dc20076b719fca766a372367d613237c9db423bbba5ecf

Contents?: true

Size: 1.04 KB

Versions: 11

Compression:

Stored size: 1.04 KB

Contents

module WebsocketRails
  class InternalEvents
    def self.events
      Proc.new do
        namespace :websocket_rails do
          subscribe :pong, :to => InternalController, :with_method => :do_pong
          subscribe :subscribe, :to => InternalController, :with_method => :subscribe_to_channel
          subscribe :unsubscribe, :to => InternalController, :with_method => :unsubscribe_to_channel
        end
      end
    end
  end

  class InternalController < BaseController
    include Logging

    def subscribe_to_channel
      channel_name = event.data[:channel]
      unless WebsocketRails[channel_name].is_private?
        WebsocketRails[channel_name].subscribe connection
        trigger_success
      else
        trigger_failure( { :reason => "channel is private", :hint => "use subscribe_private instead." } )
      end
    end

    def unsubscribe_to_channel
      channel_name = event.data[:channel]
      WebsocketRails[channel_name].unsubscribe connection
      trigger_success
    end

    def do_pong
      connection.pong = true
    end
  end
end

Version data entries

11 entries across 11 versions & 3 rubygems

Version Path
hkroger-websocket-rails-0.7.1 lib/websocket_rails/internal_events.rb
wwl-websocket-rails-0.7.3 lib/websocket_rails/internal_events.rb
wwl-websocket-rails-0.7.2 lib/websocket_rails/internal_events.rb
wwl-websocket-rails-0.7.1 lib/websocket_rails/internal_events.rb
websocket-rails-0.7.0 lib/websocket_rails/internal_events.rb
websocket-rails-0.6.2 lib/websocket_rails/internal_events.rb
websocket-rails-0.6.1 lib/websocket_rails/internal_events.rb
websocket-rails-0.6.0 lib/websocket_rails/internal_events.rb
websocket-rails-0.5.0 lib/websocket_rails/internal_events.rb
websocket-rails-0.4.9 lib/websocket_rails/internal_events.rb
websocket-rails-0.4.8 lib/websocket_rails/internal_events.rb