class Slanger::Subscription
Attributes
connection[RW]
socket[RW]
Public Class Methods
new(socket, socket_id, msg)
click to toggle source
# File lib/slanger/subscription.rb, line 6 def initialize(socket, socket_id, msg) @connection = Connection.new socket, socket_id @msg = msg end
Public Instance Methods
subscribe()
click to toggle source
# File lib/slanger/subscription.rb, line 11 def subscribe send_payload channel_id, "pusher_internal:subscription_succeeded" channel.subscribe { |m| send_message m } end
Private Instance Methods
auth()
click to toggle source
# File lib/slanger/subscription.rb, line 38 def auth @msg["data"]["auth"] end
channel()
click to toggle source
# File lib/slanger/subscription.rb, line 19 def channel Channel.from channel_id end
channel_id()
click to toggle source
# File lib/slanger/subscription.rb, line 23 def channel_id @msg["data"]["channel"] end
data()
click to toggle source
# File lib/slanger/subscription.rb, line 42 def data @msg["data"]["channel_data"] end
handle_invalid_signature()
click to toggle source
# File lib/slanger/subscription.rb, line 46 def handle_invalid_signature message = "Invalid signature: Expected HMAC SHA256 hex digest of " message << "#{socket_id}:#{channel_id}, but got #{auth}" error({ message: message }) end
invalid_signature?()
click to toggle source
# File lib/slanger/subscription.rb, line 34 def invalid_signature? token(channel_id, data) != auth.split(":")[1] end
token(channel_id, params = nil)
click to toggle source
# File lib/slanger/subscription.rb, line 27 def token(channel_id, params = nil) to_sign = [socket_id, channel_id, params].compact.join ":" digest = OpenSSL::Digest::SHA256.new OpenSSL::HMAC.hexdigest digest, Slanger::Config.secret, to_sign end