Class: Wamp::Client::Manager::Subscription

Inherits:
BaseMultiple show all
Defined in:
lib/wamp/client/manager/subscription.rb

Instance Attribute Summary

Attributes inherited from BaseMultiple

#objects

Attributes inherited from Base

#send_message_callback, #session

Instance Method Summary collapse

Methods inherited from BaseMultiple

#add, #initialize, #remove

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Wamp::Client::Manager::BaseMultiple

Instance Method Details

#event(message) ⇒ Object

Processes and incoming event

Parameters:



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/wamp/client/manager/subscription.rb', line 29

def event(message)

  # Get the arguments
  subscription_id = message.subscribed_subscription
  args = message.publish_arguments || []
  kwargs = message.publish_argumentskw || {}

  # If we have a subscription, execute it
  subscription = self.objects[subscription_id]
  if subscription

    # Create the detials
    details = message.details || {}
    details[:publication] = message.published_publication
    details[:topic] = subscription.topic
    details[:session] = self.session

    # Call the handler
    handler = subscription.handler
    handler.call(args, kwargs, details) if handler
  end
end