class Wamp::Client::Message::Event

Event Event dispatched by Broker to Subscribers for subscriptions the event was matching. Formats:

[EVENT, SUBSCRIBED.Subscription|id, PUBLISHED.Publication|id, Details|dict]
[EVENT, SUBSCRIBED.Subscription|id, PUBLISHED.Publication|id, Details|dict, PUBLISH.Arguments|list]
[EVENT, SUBSCRIBED.Subscription|id, PUBLISHED.Publication|id, Details|dict, PUBLISH.Arguments|list, PUBLISH.ArgumentsKw|dict]

Attributes

details[RW]
publish_arguments[RW]
publish_argumentskw[RW]
published_publication[RW]
subscribed_subscription[RW]

Public Class Methods

new(subscribed_subscription, published_publication, details, publish_arguments=nil, publish_argumentskw=nil) click to toggle source
# File lib/wamp/client/message.rb, line 601
def initialize(subscribed_subscription, published_publication, details, publish_arguments=nil, publish_argumentskw=nil)

  self.class.check_id('subscribed_subscription', subscribed_subscription)
  self.class.check_id('published_publication', published_publication)
  self.class.check_dict('details', details)
  self.class.check_list('publish_arguments', publish_arguments, true)
  self.class.check_dict('publish_argumentskw', publish_argumentskw, true)

  self.subscribed_subscription = subscribed_subscription
  self.published_publication = published_publication
  self.details = details
  self.publish_arguments = publish_arguments
  self.publish_argumentskw = publish_argumentskw

end
parse(params) click to toggle source
# File lib/wamp/client/message.rb, line 621
def self.parse(params)

  self.check_gte('params list', 4, params.count)
  self.check_equal('message type', self.type, params[0])

  params.shift
  self.new(*params)

end
type() click to toggle source
# File lib/wamp/client/message.rb, line 617
def self.type
  Types::EVENT
end

Public Instance Methods

payload() click to toggle source
# File lib/wamp/client/message.rb, line 631
def payload
  self.publish_arguments ||= []
  self.publish_argumentskw ||= {}

  payload = [self.class.type]
  payload.push(self.subscribed_subscription)
  payload.push(self.published_publication)
  payload.push(self.details)

  return payload if (self.publish_arguments.empty? and self.publish_argumentskw.empty?)
  payload.push(self.publish_arguments)

  return payload if (self.publish_argumentskw.empty?)
  payload.push(self.publish_argumentskw)

  payload
end
to_s() click to toggle source
# File lib/wamp/client/message.rb, line 649
def to_s
  'EVENT > ' + self.payload.to_s
end