Jetty HTTP/2: 如何设置客户端会话超时?

Jetty HTTP/2: How to set client session timeout?

我正在尝试创建一个会话并为每个请求重复使用它。 问题是,如果我在会话创建后 30 秒后尝试发送请求,我会得到:

Caused by: java.nio.channels.ClosedChannelException
at  org.eclipse.jetty.http2.HTTP2Session$ControlEntry.succeeded
(HTTP2Session.java:1224) ~[http2-common-9.4.0.v20161208.jar:9.4.0.v20161208]

我这样试过

   SSLSessionContext clientSessionContext = sslContextFactory.getSslContext().getClientSessionContext();
  clientSessionContext.setSessionTimeout(60000);

但它似乎不起作用

如果您使用HttpClient,客户端空闲超时可以设置为HttpClient.setIdleTimeout(long)

如果您使用 low-level HTTP2Client,客户端空闲超时可以设置为 HTTP2Client.setIdleTimeout(long)

两者都将控制 connection/session 空闲超时,这显然是您想要的。负值将禁用空闲超时。