Sha256: 73f0b43c0aa9d7df5e333c4ab33e8c4baa487c472f28dfb1c29d051e5bf6c978
Contents?: true
Size: 1.4 KB
Versions: 3
Compression:
Stored size: 1.4 KB
Contents
require_relative "base_multiple" module Wamp module Client module Manager class SubscriptionObject attr_accessor :topic, :handler, :options, :session, :id def initialize(topic, handler, options, session, id) self.topic = topic self.handler = handler self.options = options self.session = session self.id = id end def unsubscribe self.session.unsubscribe(self) end end class Subscription < BaseMultiple # Processes and incoming event # # @param message [Message::Event] - The incoming event message 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 end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
wamp_client-0.2.2 | lib/wamp/client/manager/subscription.rb |
wamp_client-0.2.1 | lib/wamp/client/manager/subscription.rb |
wamp_client-0.2.0 | lib/wamp/client/manager/subscription.rb |