Sha256: ec6c75a222b4dc782d61b3ec6c68604de28e224d34279ee5bce39562fab86351
Contents?: true
Size: 1.33 KB
Versions: 1
Compression:
Stored size: 1.33 KB
Contents
module Pubnub class Heartbeat include Pubnub::Event include Pubnub::SingleEvent include Pubnub::Formatter include Pubnub::Validator def initialize(options, app) super @event = 'heartbeat' @allow_multiple_channels = true @doesnt_require_callback = true end def fire(app) super end private def path(app) '/' + [ 'v2', 'presence', 'sub-key', @subscribe_key, 'channel', @channel.join(','), 'heartbeat' ].join('/') end def parameters(app) parameters = super(app) parameters.merge!({:state => encode_state(app.env[:state][@origin])}) if app.env[:state] && app.env[:state][@origin] parameters end def encode_state(state) URI.encode_www_form_component(state.to_json).gsub('+', '%20') end def format_envelopes(response, app, error) parsed_response = Parser.parse_json(response.body) if Parser.valid_json?(response.body) envelopes = Array.new envelopes << Envelope.new( { :message => parsed_response, :response_message => parsed_response }, app ) envelopes = add_common_data_to_envelopes(envelopes, response, app, error) envelopes end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pubnub-3.6.7 | lib/pubnub/events/heartbeat.rb |