Module: Restforce::Concerns::Streaming
- Included in:
- Data::Client
- Defined in:
- lib/restforce/concerns/streaming.rb
Instance Method Summary collapse
-
#faye ⇒ Object
Public: Faye client to use for subscribing to PushTopics.
-
#subscribe(channels, &block) ⇒ Object
Public: Subscribe to a PushTopic.
Instance Method Details
#faye ⇒ Object
Public: Faye client to use for subscribing to PushTopics
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/restforce/concerns/streaming.rb', line 15 def faye unless [:instance_url] raise 'Instance URL missing. Call .authenticate! first.' end url = "#{[:instance_url]}/cometd/#{[:api_version]}" @faye ||= Faye::Client.new(url).tap do |client| client.set_header 'Authorization', "OAuth #{[:oauth_token]}" client.bind 'transport:down' do Restforce.log "[COMETD DOWN]" client.set_header 'Authorization', "OAuth #{authenticate!.access_token}" end client.bind 'transport:up' do Restforce.log "[COMETD UP]" end end end |
#subscribe(channels, &block) ⇒ Object
Public: Subscribe to a PushTopic
channels - The name of the PushTopic channel(s) to subscribe to. block - A block to run when a new message is received.
Returns a Faye::Subscription
10 11 12 |
# File 'lib/restforce/concerns/streaming.rb', line 10 def subscribe(channels, &block) faye.subscribe Array(channels).map { |channel| "/topic/#{channel}" }, &block end |