class Slanger::PresenceSubscription

Public Instance Methods

subscribe() click to toggle source
# File lib/slanger/presence_subscription.rb, line 3
def subscribe
  return handle_invalid_signature if invalid_signature?

  unless channel_data?
    return connection.error({
      message: "presence-channel is a presence channel and subscription must include channel_data"
    })
  end

  channel.subscribe(@msg, callback) { |m| send_message m }
end

Private Instance Methods

callback() click to toggle source
# File lib/slanger/presence_subscription.rb, line 21
def callback
  Proc.new {
    connection.send_payload(channel_id, 'pusher_internal:subscription_succeeded', {
      presence: {
        count: channel.subscribers.size,
        ids:   channel.ids,
        hash:  channel.subscribers
      }
    })
  }
end
channel_data?() click to toggle source
# File lib/slanger/presence_subscription.rb, line 17
def channel_data?
  @msg['data']['channel_data']
end