Jetty HTTP/2:如何设置客户端会话超时?
我试图创建一个会话,并对每个请求重复使用它。 问题是,如果我尝试在会话创建30秒后发送请求,我会得到: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] 我试过这
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)
。非常感谢!成功了!我在服务器端设置了超时,一切正常。