Sha256: 19687177c2d916a81eb2ad9c05a57989498d5c134ac994917a067c3127eef004
Contents?: true
Size: 858 Bytes
Versions: 4
Compression:
Stored size: 858 Bytes
Contents
require 'http/parser' require 'openssl' require 'resolv' module Twitter module Streaming class Connection def initialize(opts = {}) @tcp_socket_class = opts.fetch(:tcp_socket_class) { TCPSocket } @ssl_socket_class = opts.fetch(:ssl_socket_class) { OpenSSL::SSL::SSLSocket } end attr_reader :tcp_socket_class, :ssl_socket_class def stream(request, response) client_context = OpenSSL::SSL::SSLContext.new client = @tcp_socket_class.new(Resolv.getaddress(request.socket_host), request.socket_port) ssl_client = @ssl_socket_class.new(client, client_context) ssl_client.connect request.stream(ssl_client) while body = ssl_client.readpartial(1024) # rubocop:disable AssignmentInCondition response << body end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems