Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jetty-users] Send HTTP/2 requests at the same time

Hi All:

I am wondering how to send the HTTP/2 requests at the same time. According to the jetty example code for  HTTP/2 client code. They use the phaser to listen the frames. when I use a for loop, for example

for(int i=0;i<childpath.size();i++)

        {

        

        MetaData.Request metaData = new MetaData.Request("GET", new HttpURI("https://"+host+":"+port+"/"+childpath.get(i)), HttpVersion.HTTP_2, requestFields);

       PriorityFrame tempPriorityFrame = null;

              

        HeadersFrame headersFrame = new HeadersFrame(0, metaData, tempPriorityFrame, true);

        final Phaser phaser = new Phaser(2);

        

        session.newStream(headersFrame, new Promise.Adapter<Stream>(), new Stream.Listener.Adapter()

        {

            @Override

            public void onHeaders(Stream stream, HeadersFrame frame)

            {

                System.err.println(frame);

                if (frame.isEndStream())

                    phaser.arrive();

            }


            @Override

            public void onData(Stream stream, DataFrame frame, Callback callback)

            {

                System.err.println(frame);

                callback.succeeded();

                if (frame.isEndStream())

                    phaser.arrive();

            }


            @Override

            public Stream.Listener onPush(Stream stream, PushPromiseFrame frame)

            {

                System.err.println(frame);

                phaser.register();

                return this;

            }

        });

        

              phaser.awaitAdvanceInterruptibly(phaser.arrive(), 5, TimeUnit.SECONDS);


    }

        

I found only when the first frame's response being heared and a dataframe with end=true being heared then the second request can be made.

Does anyone know how to send the request at the same time without waiting for the former request's response. Many Thanks

Best Regards

Muhui Jiang


Back to the top