问题标签 [keep-alive]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
695 浏览

web-applications - 保持 Web 请求处于活动状态

我有一个网络应用程序,可以帮助下载报告。但是报表生成有时会花费很多时间,并且Web请求通过中间代理服务器超时。(超时:90秒)。下载报告的工作流程很简单。客户端向 Web 服务器发送请求。Web 服务器生成报告,并将其作为 Excel 下载提供给客户端。
excel 是使用 POI 生成的,下载是使用 Spring 的 AbstractExcelView 提供的。
保持 Web 请求活动的最佳方法是什么(当然,不增加超时)?

0 投票
3 回答
34600 浏览

http - HTTP Keep Alive 时长与 TCP 超时时长的关系

我试图了解 TCP/IP 和 HTTP 超时值之间的关系。这两个超时值是不同还是相同?大多数 Web 服务器允许用户通过一些配置来设置 HTTP Keep Alive 超时值。Web 服务器如何使用这个值?这个值是否只是在底层 TCP/IP 套接字上设置的,即 HTTP Keep Alive 超时和 TCP/IP Keep Alive Timeout 是否相同?还是他们被区别对待?

我的理解是(可能不正确):Web 服务器在底层 TCP 套接字上使用默认超时(即无限期),而不管配置的 HTTP Keep Alive 超时如何,并创建一个 Worker 线程来倒计时指定的 HTTP 超时间隔。当 Worker 线程达到零时,它会关闭连接。

编辑: 我的问题是关于两个超时持续时间之间的关系或差异,即当 HTTP 保持活动超时持续时间和 Web 服务器使用的套接字 (SO_TIMEOUT) 上的超时不同时会发生什么?我什至应该担心这两个是否相同?

0 投票
2 回答
2023 浏览

android - Android - 本机层的 VPN

只是一个快速的问题,因为谷歌并没有抛出太多。

是否可以在 Android 中使用本机代码创建 VPN 连接?

如果是这样,VPN 是否提供对保持活力的支持?

0 投票
1 回答
2189 浏览

iphone - 在 NSURLConnection 中禁用 keep-alive

使用 NSURLConnection 时如何禁用 keep-alive?似乎,在取消并关闭它之后,它仍然会在某处保存一个我连接到服务器的套接字,而当服务器获取信息时,我无法从同一服务器访问另一个 url。我想知道是否有办法完全重置一个套接字并启动另一个。

谢谢,

纳瓦

0 投票
3 回答
3827 浏览

apache - 如何禁用每个目录的 Keep-Alive

是否可以在目录基础上禁用 Keep-Alive?

例如,我有一个在 domain.com/api/ 上运行的 API

如果没有在 /api/ 目录中的任何请求上使用 KeepAlive,那就太好了。


更新/解决方案:

SetEnvIf Request_URI /api/ nokeepalive

来源:http ://httpd.apache.org/docs/2.2/env.html

0 投票
2 回答
1078 浏览

java - 主服务器的 Java TCP 保持活动状态

上下文:主服务器(Java、TCP)监控托管游戏列表(主服务器和每个托管游戏服务器的不同机器)。任何用户都可以在他的 PC 上托管游戏。托管游戏可持续数周或数月。

需要:了解托管游戏服务器何时关闭或不再可访问。

限制 1:不能依赖托管服务器的“离线更新消息”,因为这些消息可能永远不会到达(断电、互联网链接断开等)

限制 2:我不确定 TCP 的内置 keep-alive,因为这意味着每个托管服务器都有一个 24/7 开放的套接字(如果我错了,请纠正我)

有什么想法吗?

0 投票
2 回答
67067 浏览

php - 服务器响应中的“连接:保持活动”

我正在尝试建立从 Silverlight 应用程序到由 Apache 服务器托管的 PHP 页面的 HTTP 持久连接(即,不为每个 HTTP 请求创建新的 TCP 连接)。

为此,我需要网络服务器发送其 HTTP 响应,并将“Connection”标头设置为“Keep-alive”。客户端,似乎没有任何问题,因为 Silverlight 提供的网络 API 基本上是浏览器网络功能的包装,从我读过的内容来看:所以如果浏览器支持 HTTP 1.1 和 Connection: Keep-Alive默认情况下,它的请求,没关系。Content-Length 也被很好地定义,以便服务器知道它何时必须发送响应。但是,服务器对 PHP 请求的响应系统地将“连接:”设置为“关闭”,从而结束连接并阻止持久连接。

我已经尝试了一些方法来解决这个问题:不同的方法(GET 和 POST),在我的脚本开头使用以下 PHP 代码显式地为响应提供“连接:保持活动”:

后者将预期的标头添加到响应中,这很好,但是稍后仍会在响应标头中附加一个附加的“连接:关闭”。

它是 PHP 或 Apache 的一个特性,它强制“关闭”(出于某种安全或性能目的,我猜)还是我只是在这里遗漏了一些东西?

提前致谢。

PS:通过嗅探数据包,我注意到没有多少网站使用“保持活动”并且重新建立了 TCP 连接。Keepalive 不是 HTTP 1.1 下的默认和首选行为吗?

0 投票
2 回答
13715 浏览

windows-server-2008 - 如何在 Windows Server 2008 上设置 Keepalive

我有 win32 应用程序,其中 winsock 用于 TCP/IP 通信。我正在使用 WSAIoctl 函数设置 keepalive 值,并且它在 Windows XP 上正常工作。

但是在赢。Server 2008 WSAIoctl 失败,并且 WSAGetLastError 返回 10022(无效参数),这没有任何意义。

我设置keepalive的代码如下;

p>

编辑:

我找到了解决方案,也许它可以帮助遇到同样问题的其他人。我试图在异步之后设置keepalive。连接呼叫,但现在我在完成连接呼叫后进行设置,这解决了问题。

来自http://msdn.microsoft.com/en-us/library/ee470551(v=VS.85).aspx

在 Windows Vista 和更高版本上,只有当套接字处于众所周知的状态而不是过渡状态时,才能使用 setsockopt 函数设置 SO_KEEPALIVE 套接字选项。对于 TCP,SO_KEEPALIVE 套接字选项应该在调用连接函数(connect、ConnectEx、WSAConnect、WSAConnectByList 或 WSAConnectByName)之前设置,或者在连接请求实际完成之后设置。如果连接函数是异步调用的,那么这需要在尝试设置 SO_KEEPALIVE 套接字选项之前等待连接完成。如果应用程序在连接请求仍在处理中时尝试设置 SO_KEEPALIVE 套接字选项,则 setsockopt 函数将失败并返回 WSAEINVAL。

0 投票
2 回答
4044 浏览

.net - 在哪里可以获得 .NET 中套接字中保持活动的规范?

我正在尝试找出 keep-alive 在 .NET 中的工作原理,但此处的链接不起作用。有人可以发布规范的链接吗?

我在找什么:

  • 我想知道发送保持活动数据包的频率。

  • 我是否必须通过命令设置 KeepAlive:

    s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);

    仅在服务器端甚至客户端必须设置此标志?

0 投票
1 回答
628 浏览

javascript - 在不活动期后断开 jquery 连接

我在服务器端使用TCP keepalive来保持连接处于活动状态,并在客户端死亡时通知服务器。如何配置jQuery.get()在一定的空闲时间后断开连接?

编辑 - 我想将“空闲时间”视为没有交换 TCP 数据包的时间。由于服务器有 TCP keepalive,它会不断地向客户端发送 0 数据包。

@JP 的答案与我想要的不完全匹配。如果连接是打开的,有保持活动的流量但没有数据,我想无限期地保持它打开。