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

Jetty HTTP/2:如何设置客户端会话超时?,jetty,http2,Jetty,Http2,我试图创建一个会话,并对每个请求重复使用它。 问题是,如果我尝试在会话创建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] 我试过这

我试图创建一个会话,并对每个请求重复使用它。 问题是,如果我尝试在会话创建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)
设置客户端空闲超时

如果您使用的是低级
HTTP2Client
,则可以使用
HTTP2Client.setIdleTimeout(long)
设置客户端空闲超时


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

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

如果您使用的是低级
HTTP2Client
,则可以使用
HTTP2Client.setIdleTimeout(long)
设置客户端空闲超时


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

感谢您的回复。我尝试了以下方法:HTTP2Client client=newhttp2client();client.setIdleTimeout(-1);但是我的会话在30秒后关闭如果客户端禁用了空闲超时,则服务器仍可以关闭会话。如果您控制服务器,则必须调用
ServerConnector.setIdleTimeout(long)
。非常感谢!成功了!我在服务器端设置了超时,一切正常。谢谢您的回复。我尝试了以下方法:HTTP2Client client=newhttp2client();client.setIdleTimeout(-1);但是我的会话在30秒后关闭如果客户端禁用了空闲超时,则服务器仍可以关闭会话。如果您控制服务器,则必须调用
ServerConnector.setIdleTimeout(long)
。非常感谢!成功了!我在服务器端设置了超时,一切正常。