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 空闲超时,这显然是您想要的。负值将禁用空闲超时。
我正在尝试创建一个会话并为每个请求重复使用它。 问题是,如果我在会话创建后 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 空闲超时,这显然是您想要的。负值将禁用空闲超时。