mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-08-12 00:01:58 -04:00
added close callback (http1: when server tells to close; http2: when there are no more streams)
This commit is contained in:
parent
7cc2f66eed
commit
c180f5ba71
@ -73,9 +73,11 @@ module HTTPX
|
||||
response = @responses.shift
|
||||
emit(:response, request, response)
|
||||
reset
|
||||
emit(:close) if response.headers["connection"] == "close"
|
||||
|
||||
send(@pending.shift) unless @pending.empty?
|
||||
return unless response.headers["connection"] == "close"
|
||||
log { "connection closed" }
|
||||
emit(:close)
|
||||
end
|
||||
|
||||
private
|
||||
|
@ -72,6 +72,7 @@ module HTTPX
|
||||
@connection.on(:promise, &method(:on_promise))
|
||||
@connection.on(:altsvc, &method(:on_altsvc))
|
||||
@connection.on(:settings_ack, &method(:on_settings))
|
||||
@connection.on(:goaway, &method(:on_close))
|
||||
end
|
||||
|
||||
def join_headers(stream, request)
|
||||
@ -104,6 +105,12 @@ module HTTPX
|
||||
@max_concurrent_requests = [@max_concurrent_requests, @connection.remote_settings[:settings_max_concurrent_streams]].min
|
||||
end
|
||||
|
||||
def on_close
|
||||
return unless @server.state == :closed && @server.active_stream_count.zero?
|
||||
log { "connection closed" }
|
||||
emit(:close)
|
||||
end
|
||||
|
||||
def on_frame_sent(frame)
|
||||
log { "frame was sent!" }
|
||||
log do
|
||||
|
Loading…
x
Reference in New Issue
Block a user