Hi

But I find chrome will send window_update frame. Here is a part of the
packages when I made request to google.com

t=13293813 [st=    0]    HTTP2_STREAM_UPDATE_RECV_WINDOW
                         --> delta = 15663105
                         --> window_size = 15728640
t=13293813 [st=    0]    HTTP2_SESSION_SENT_WINDOW_UPDATE_FRAME
                         --> delta = 15663105
                         --> stream_id = 0
t=13294034 [st=  221]    HTTP2_SESSION_RECV_SETTINGS
                         --> clear_persisted = false
                         --> host = "www.google.com:443"
t=13294034 [st=  221]    HTTP2_SESSION_RECV_SETTING
                         --> flags = 0
                         --> id = 3
                         --> value = 100
t=13294034 [st=  221]    HTTP2_SESSION_UPDATE_STREAMS_SEND_WINDOW_SIZE
                         --> delta_window_size = 983041


You can see the client has send the window_update_frame. And when I
set the key 4(initial ) as 100. I find all the frames I received is
100. I was wondering why the size of the frame I received is
configured by the settings frame? It seems I can do flow control by
using settings frame. I am confused why not using window_update frame,
which is responsible for flow control.


Best Regards

Muhui Jiang


2015-09-27 23:46 GMT+08:00 Simone Bordet <[email protected]>:

> Hi,
>
> On Sun, Sep 27, 2015 at 5:39 PM, Muhui Jiang <[email protected]> wrote:
> > Hi
> >
> > Simone. Another thing I want to ask you(sorry for so many questions). I
> set
> > the key 4 to 100 in the settings to enable the window size I got for
> every
> > frame.
> >
> >         int key1 = 4;
> >
> >         Integer value1 = 100;
> >
> >         settings1.put(key1, value1);
> >
> >         SettingsFrame settingsFrame = new SettingsFrame(settings1,
> false);
> >
> >
> > But I didn't send any window update frame. I was wondering whether Jetty
> did
> > this in the background.
> >
> > And when I tried to send window_update frame to the server. I find Jetty
> > only supports the method for Http2Session. Session doesn't have this
> > function. But you know I use this
> >
> >
> >         FuturePromise<Session> sessionPromise = new FuturePromise<>();
> >
> >         client.connect(sslContextFactory, new InetSocketAddress(host,
> port),
> >
> >         new ServerSessionListener.Adapter(), sessionPromise);
> >
> >         Session session = sessionPromise.get(5, TimeUnit.SECONDS);
> >
> >
> > to open the session. I don't know how to send window_update_frame. Could
> you
> > please give me a hint? Thank you so much.
>
> Applications do not need to send WINDOW_UPDATE frames.
> This is taken care by the implementation, exactly like when using
> sockets (that use TCP) you don't have to send TCP ACK packets or
> retransmit packets.
>
> That's the reason why there is no API to directly send WINDOW_UPDATE
> frames.
>
> You can interact with the flow control mechanism by providing your own
> FlowControlStrategy, but overriding the factory methods in
> HTTP2[Client|Server]ConnectionFactory.
>
> Unless you want to really mess up with the protocol, I suggest you
> leave the FlowControl mechanism to Jetty.
>
> --
> Simone Bordet
> ----
> http://cometd.org
> http://webtide.com
> Developer advice, training, services and support
> from the Jetty & CometD experts.
> _______________________________________________
> jetty-users mailing list
> [email protected]
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://dev.eclipse.org/mailman/listinfo/jetty-users
>
_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to