Method: Wamp::Client::Manager::Subscription#event

Defined in:
lib/wamp/client/manager/subscription.rb

#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