Sha256: 859f82bbb0752b8e081a0142717a533cf2dd12593f8fb07549c075adae46ef8b
Contents?: true
Size: 852 Bytes
Versions: 1
Compression:
Stored size: 852 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.uri.host), request.uri.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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
twitter-5.15.0 | lib/twitter/streaming/connection.rb |