0 0

请教一个关于http连接keep alive的问题! 5

server用的是jetty,client用apache的commons-httpclient来执行method 。

目前我知道了 用 method.setRequestHeader("Connection" , "Keep-Alive" or "close") 来控制是否保持连接。

现在没弄懂的地方: 在保持连接的情况下,如何设置自动断开的时间? 比如, 我要设置keep alive 1分钟,如果这期间没有数据的传输,那么就断开连接。

请问该怎么设置? request里设置,还是jetty需要什么改配置?
2008年6月23日 12:30

2个答案 按时间排序 按投票排序

0 0

采纳的答案

可以在jetty里面设的

org.mortbay.jetty.nio.SelectChannelConnector#setMaxIdleTime()方法就是设socket通信的过期时间

javaDoc是这样的:

Description copied from class: AbstractConnector
Set the maximum Idle time for a connection, which roughly translates to the Socket.setSoTimeout(int) call, although with NIO implementations other mechanisms may be used to implement the timeout. The max idle time is applied:
When waiting for a new request to be received on a connection
When reading the headers and content of a request
When writing the headers and content of a response
Jetty interprets this value as the maximum time between some progress being made on the connection. So if a single byte is read or written, then the timeout (if implemented by jetty) is reset. However, in many instances, the reading/writing is delegated to the JVM, and the semantic is more strictly enforced as the maximum time a single read/write operation can take. Note, that as Jetty supports writes of memory mapped file buffers, then a write may take many 10s of seconds for large content written to a slow device.
Previously, Jetty supported separate idle timeouts and IO operation timeouts, however the expense of changing the value of soTimeout was significant, so these timeouts were merged. With the advent of NIO, it may be possible to again differentiate these values (if there is demand).


所以只需要在xml配置文件里面设定这个值就可以了

2008年6月23日 15:20
0 0

一般服务器apache,tomcat,Resin都有类似的设置

2008年6月23日 15:22

相关推荐

    利用Keep-Alive处理Socket网络异常断开的方法

    2. **探测报文**:TCP协议会发送一个特殊的Keep-Alive数据包给对方,这个数据包使用的是上一次发送的数据的序列号。 3. **响应**:如果对端接收到这个数据包,则会发送一个ACK确认报文回来,表明连接仍然有效。 4....

    vue中keep-alive,include的缓存问题

    在Vue.js框架中,`keep-alive`是一个非常实用的内置组件,它能够对组件状态进行缓存,防止在切换路由时进行重复的渲染,提高性能。然而,在使用`keep-alive`组件的`include`属性时,可能会出现一些缓存问题。`...

    HTTP协议Keep-Alive模式详解

    Keep-Alive 模式是 HTTP 协议中的一种机制,它使客户端到服务器端的连接保持有效,从而避免了每个请求和应答都新建一个连接,并立即断开连接。下面是关于 Keep-Alive 模式的详细解释: 一、什么是 Keep-Alive 模式...

    Nextjs-keep-alive-demo.rar

    Nextjs-keep-alive 实现,vue中有这个专门的keep-alive插件,但是react没有,更别提nextjs了,这是现成的项目demo。 next9,10,11,12,13,14 及以上都可以用。直接使用或者移植到你的项目,非常方便。集成了发送...

    springboot-keepalive设置测试

    在IT行业中,Spring Boot是一个广泛使用的Java框架,用于快速开发微服务应用。它极大地简化了配置,使得开发者能够更专注于业务逻辑。在这个“springboot-keepalive设置测试”项目中,我们将关注的是如何在Spring ...

    vue.js内置组件之keep-alive组件使用

    `keep-alive`是Vue.js框架中的一个内置组件,用于实现组件的缓存功能,避免在切换组件时销毁和重新创建实例,从而提高性能并保持组件的状态。在使用`keep-alive`时,它会包裹动态组件,并在不活动时缓存组件实例。 ...

    keep-alive.7z

    在IT行业中,`keep-alive` 是一个非常重要的概念,特别是在前端开发领域,尤其是在使用Vue.js框架时。Vue.js是一个轻量级的JavaScript框架,它提供了丰富的功能来构建复杂的单页应用程序(SPA)。`keep-alive`是Vue....

    HTTP协议Keep-Alive模式详解和HTTP头字段总结

    在HTTP协议中,Keep-Alive模式是一种用于优化网络通信的技术,它允许客户端和服务器在同一TCP连接上进行多次请求和响应,而不是每次交互都创建新的连接。这种模式显著提高了效率,减少了网络延迟,降低了资源消耗,...

    vue keep-alive请求数据的方法示例

    Vue Keep-Alive 是 Vue 框架中的一个功能强大且实用的机制,可以缓存组件的状态,减少不必要的组件重渲染,提高应用程序的性能。但是,在使用 Keep-Alive 时,可能会遇到一些问题,例如请求数据的方法示例、keep-...

    彻底揭秘keep-alive原理(小结)

    一、前言 ...keep-alive是一个抽象组件:它自身不会渲染一个 DOM 元素,也不会出现在父组件链中;使用keep-alive包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。 2.2 一个场景 用户在某

    Keep Your Brain Alive

    很好的国外电子读物!keep your brain alive !

    keep alive.zip

    在这个名为"keep alive.zip"的压缩包中,我们推测包含了一个用VS2013编译的项目,这个项目可能是一个驱动程序,其目的可能是实现对指定进程的保护和隐蔽。 首先,让我们深入了解驱动级编程。驱动程序是操作系统的一...

    Vue中对iframe实现keep alive无刷新的方法

    最近一个需求,需要在 Vue 项目中加入 含有iframe 的页面,同时在路由切换的过程中,要求iframe的内容 不会被刷新 。一开始使用了Vue自带的keep- alive发现没有用,于是自己研究了一下解决方案。。。。。。 Vue的...

    vue使用keep-alive切换页面,2种方法实现页面保持滚动位置.zip

    为了解决这个问题,Vue提供了一个名为`keep-alive`的组件,它可以缓存组件的状态,使得在页面切换后仍然能保留之前的滚动位置。下面我们将详细探讨两种使用`keep-alive`在Vue中实现页面保持滚动位置的方法。 首先,...

    解决vue keep-alive 数据更新的问题

    在Vue.js应用中,`<keep-alive>`组件是一个非常有用的特性,它允许我们缓存组件的状态,使得在切换路由时能快速恢复之前的状态,从而提高用户体验。然而,在实际使用中,`<keep-alive>`可能会引发一些数据更新的问题...

    Keep-alive

    "Keep-alive" 是一种网络通信技术,主要应用于TCP协议中,用于保持连接状态,避免因长时间无数据传输导致的连接中断。Keepalive工具包,如提到的"Keepalive 1.3.5",是实现这一技术的软件实现,主要用于服务器端,以...

    vue中keep-alive的用法及问题描述

    在做电商有关的项目中,当我们第一次进入列表页需要请求一下数据,当我从列表页进入详情页,详情页不缓存也需要请求下数据,然后返回列表页,这时候我们使用keep-alive来缓存组件,防止二次渲染,这样会大大的节省...

    keep-alive不能缓存多层级路由菜单问题解决

    这个组件的作用是在没有具体组件的情况下作为一个占位符,以便`keep-alive`仍然能够正常工作。在实际的`EmptyTemplate`组件中,我们可以包含一个`<router-view>`,这样即使在没有直接指定组件的情况下,依然可以显示...

    keep-alive的介绍及使用

    定义: 如果需要频繁切换路由,这个时候就可以考虑用keep-alive了,来达到避免数据的重复请求的目的 keep-alive用来缓存组件,避免多次加载相应的组件,减少性能消耗。...keep-alive是一个内置组件和类似 keep-alive

Global site tag (gtag.js) - Google Analytics