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