Skip to content

Latest commit

 

History

History
41 lines (32 loc) · 1.09 KB

streaming.md

File metadata and controls

41 lines (32 loc) · 1.09 KB
layout title permalink hide top_name top_link prev_name prev_link
documentation
Streaming Responses
/usage/streaming
true
Usage
./
Customizing the Request
./customize

Sometimes you might need to receive a streaming response. You can do this with the on_data request option.

The on_data callback is a receives tuples of chunk Strings, and the total of received bytes so far.

This example implements such a callback:

# A buffer to store the streamed data
streamed = []

conn.get('/stream/10') do |req|
  # Set a callback which will receive tuples of chunk Strings
  # and the sum of characters received so far
  req.options.on_data = Proc.new do |chunk, overall_received_bytes|
    puts "Received #{overall_received_bytes} characters"
    streamed << chunk
  end
end

# Joins all response chunks together
streamed.join

The on_data streaming is currently only supported by some adapters. To see which ones, please refer to Awesome Faraday comparative table or check the adapter documentation.