John,

It is not necessary to have access to the frames themselves to achieve this.
At the API level, in the HttpResponse.MultiProcessor type the onStart() method returns a BiFunction that is called for each incoming push promise. The implementation of that function (which is supplied by the user) must return true or false depending
on whether the push is to be accepted or canceled. If it is canceled then
a RST_STREAM frame is sent to do the cancellation.

I need to add a test for that scenario though. So, thanks for raising the point.

Michael

On 06/04/16 16:42, John Jiang wrote:
Hi Michael,
All of HTTP/2 frame types aren't public APIs, then is there any way to handle HTTP/2 at lower level? For example, how to cancel server push? In theory, the client should send a RST_STREAM frame with error code REFUSED_STREAM or CANCEL to the server.

Best regards,
John Jiang

On 2016/4/6 22:08, Michael McMahon wrote:
Hi,

This is the webrev for the HTTP/2 part of JEP 110.

http://cr.openjdk.java.net/~michaelm/8087124/webrev.1/index.html

There are minor changes to existing classes as well as the bulk
of the new stuff in the new files. Most of the HTTP/2 implementation
is in the files:

|| src/java.httpclient/share/classes/java/net/http/Http2Connection.java
|| src/java.httpclient/share/classes/java/net/http/Stream.java

Each of the HTTP/2 frame types also has its own class derived from
Http2Frame.

The hpack code will be reviewed in a separate review to be
circulated today by Pavel.

I realise there were comments a few weeks ago on the Http/1 code
which I haven't gotten back to. Once all of this code is integrated
I will return to fixing up issues across the whole implementation,
and some API issues will also be revisited.

Thanks,
Michael


Reply via email to