What operating system and processor architecture are you using (go env)?
What did you do?
I am working on an HTTP/2 client for Apple's push notification service. When using JWT tokens to authenticate, Apple initially sends maxConcurrentStreams = 1. Once authentication is complete they send maxConcurrentStreams = 500 (though this number may vary).
Currently I have a worker pool to send multiple requests concurrently. If I could monitor the maxConcurrentStreams, I would know how big the worker pool should be -- or how many workers should be active.
What did you expect to see?
Access to maxConcurrentStreams via httptrace or some other x/net/http2 API.
Would it be possible to notify the client (caller) when maxConcurrentStreams changes? (callback function, event channel?)
Or should this just expose the value of maxConcurrentStreams through http2.ClientConn -- with the client polling the value?
I'm also curious what the direction is for #13774 (blocking the transport)? By itself, that may prevent the REFUSED_STREAM errors I'm seeing. Though my code would be left guessing at the optimal number of concurrent requests without visibility into maxConcurrentStreams.