问题标签 [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 回答
280 浏览

google-chrome - 如何在 Chrome 或 Safari 上暂停资源跟踪?

Safari 和 Chrome 中的资源跟踪工具非常适合可视化各种页面组件的加载时间,但是当定期发生保持活动 ping 时,视图会完全模糊(在我的情况下,chartbeat 每 15 秒发送一次 ping,所以所有其他加载时间被压缩到一个很小的无用部分,而图表 ping 被拉伸到整个视图中)。

因此,如果有一个“暂停”按钮可以停止资源跟踪,但保留当前视图,那就太好了。这可能吗?

0 投票
2 回答
25904 浏览

c# - WebClient 是否使用 KeepAlive?

我需要向单个主机(API 调用)发出大约 50 个 HTTP 请求。性能很重要,所以我想使用 HTTP KeepAlive。WebClient 支持这个吗?

0 投票
1 回答
860 浏览

ruby - 是否可以强制遏制不使用 Keep Alive?

使用遏制与某些 HTTP 服务器进行通信,并且看起来该 HTTP 服务器没有正确实现 Keep-Alive。

这就是为什么我正在寻找强制遏制不使用此功能的方法。

当然,我可以在发出下一个请求之前睡几分钟,但我想以其他方式做到这一点。

0 投票
1 回答
5754 浏览

c - Windows TCP 套接字默认启用了 SO_KEEPALIVE?

我遇到了一个奇怪的 TCP 套接字错误。似乎SO_KEEPALIVE默认情况下在所有套接字上启用。

我写了一个简短的测试用例来创建一个套接字并连接到服务器。连接后,我立即检查SO_KEEPALIVE. getsockopt该值非零,根据 MSDN,这意味着启用了保持活动。也许我误解了这一点。

我最近遇到了一个奇怪的错误,即服务器连续两次断开连接。一些客户端处于已发送登录信息并等待响应的状态。即使有一个重叠WSARecv发布到连接到服务器的套接字,也没有发布完成以通知客户端服务器崩溃,所以我假设套接字没有完全关闭。

大约 2 小时后(实际上是大约 1 小时 59 分 19 秒),一个完成数据包被发布用于读取,通知客户端连接不再打开。这是我开始怀疑的地方SO_KEEPALIVE

我试图理解为什么会这样。这引起了一些问题,因为出于任何原因失去连接的客户端都应该自动重新连接到服务器;在这种情况下,由于没有通知断开连接,客户端直到 2 小时后才重新连接。

一个明显的解决方法是设置超时,但我想知道这种情况是如何发生的。

SO_KEEPALIVE我的应用程序服务器或客户端未在套接字上设置。

0 投票
2 回答
2033 浏览

c++ - HTTP keep-alive 与 C++ recv winsocket2

我正在编写自己的 HTTP 提取器套接字。我在 MVC++ 和 winsocket2.h 中使用 C++ 我能够对套接字进行编程以连接到所需网站的服务器并发送 HTTP GET 请求。

现在的问题是,在我使用 Keep-alive 连接发送 HTTP GET 请求后,我调用了 recv 函数,它工作正常,除了在检索网站后,它一直徘徊并等待来自服务器或连接的超时提示关闭!

根据服务器的保持活动超时,这需要几秒钟的时间,因此,我无法从保持活动的 HTTP 设置中受益。

如何在检索网站后告诉 recv 函数停止并将命令返回给我,以便我可以发送另一个 HTTP 请求,同时避免另一个握手机制。

当我使用非阻塞套接字时,它的工作速度更快,但我不知道什么时候停止,我设置了一个 str.rfind("",-1,7) 来停止检索数据。但是,它不是很有效。

有谁知道这样做的方法,或者当连接保持活动状态时 HTTP 服务器发送的最后一个字符是什么,所以我可以将其用作停止决定。

最好的,

0 投票
1 回答
3235 浏览

jsp - 通过调用 jsp 发送 heartbeart 不会使会话保持活动状态

我想在浏览器上打开网页时保持会话活跃,即使我很长时间没有触摸它,这就是我尝试做的事情:

  1. 在服务器端(tomcat),会话超时设置为 8 分钟。
  2. main jsp 生成一个html。在这个 html 中,我使用 timer & ajaxheartbeat.jsp每 3 分钟调用一次,并将初始会话 id 的值传递给它。
  3. heartbeat.jsp中,我转储了session.getId()的值和初始会话 ID。

【执行结果时间线】:

  • 10:00我打开页面——主jsp程序生成客户端html
  • 10:03 heartbeat.jsp调用 -- session.getId()= 初始会话 ID
  • 10:06 heartbeat.jsp调用 -- session.getId()= 初始会话 ID
  • 10:09 heartbeat.jsp调用 -- session.getId()<> 初始会话 ID

初始会话 id 的最后访问时间为10:06,因此初始会话 id 的超时时间应为10:14。但是为什么在10:09,session.getId()得到另一个新的 id 呢?

似乎前 2 个调用没有在服务器端重置初始会话的超时计数器。我在 IE 和 Firefox 中都对此进行了测试,它们的结果相同

我怎样才能让会话永远活着?

[主要的jsp代码段]:

[heartbeat.jsp 代码段]:

0 投票
2 回答
930 浏览

php - http:keep-alive 是保持 php 资源打开还是释放所有资源?

我在 apache 服务器上使用 http keep-alive,可以
说我要求它保持连接打开最多 2 分钟......
现在,如果创建连接并空闲一分钟,php 持有的资源,
如 mysql连接、文件句柄等将被释放还是它们也会继续存在?

0 投票
1 回答
5065 浏览

c# - 当 .Net Sockets Keep Alive 未收到确认时会引发什么事件?

我已经使用配置了我的 C# .Net 套接字

我的设置是每 30 秒发送一次,然后在未收到第一个确认时每 10 秒发送一次。

当连接建立时,我可以看到保持活动状态和保持活动状态确认标志被发送和接收到我的服务器。

当连接断开时,我可以看到我的保持活动被发送并且没有收到确认。我可以看到发送的保持活动已根据我的设置改变了它们的行为,即每 10 秒发送一次,而不是每 30 秒发送一次。

我期待某种事件触发,以便我可以响应中断(即关闭套接字,然后开始尝试回收它)。

谁能告诉我如何了解 Keep Alives 已经注意到连接断开的事实?

谢谢阿迪

0 投票
5 回答
9997 浏览

scheduling - 注销后如何保持 Perl 脚本在 Unix 上运行?

我有一个脚本需要很长时间才能完成。

而不是等待它完成,我宁愿只是注销并稍后检索它的输出。

我试过了;

at -m -t 03030205 -f /path/to/./thescript.pl

nohup /path/to/./thescript.pl &

而且我还验证了这些进程实际上存在于psat -l取决于我使用的调度语法。

当我退出 shell 时,这两个进程都会死掉。有没有办法在我关闭连接时阻止脚本终止?

我们这里有 crons,它们已设置好并且工作正常,但我想使用atnohup用于一次性脚本。

我的语法有问题吗?有没有其他方法可以产生预期的结果?


编辑:
我不能使用screendisown- 它们没有安装在我的 HP Unix 设置中,我也无法安装它们

0 投票
3 回答
6050 浏览

java - 如何关闭 TCP Keepalive?

我有一个充当服务器的 java 应用程序和一个充当客户端的 android 手机。它们通过 TCP 套接字进行通信。

我经常让客户端睡眠,当它的缓冲区填满时,我希望 wifi 无线电能够进入睡眠状态。问题是客户端没有睡觉。我注意到wireshark 说我的服务器大约每半秒发送一次TCP KeepAlive 数据包,因此wifi 无法休眠。我在服务器和客户端上尝试了以下内容。

但这似乎没有任何改变。我正在使用wireshark来分析流量。这是wireshark的屏幕截图......黑线表示我的客户在哪里睡觉并且它的接收缓冲区已满。我可以阻止服务器发送keepAlive数据包吗?

谢谢!