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
_______________________________________________
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