问题标签 [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 投票
5 回答
3125 浏览

php - 与php保持实时连接?

我正在做一个项目,让我不断地为新数据 ping 一个 php 脚本,所以如果我正确理解这一点,这意味着被 ping 的 php 脚本会无限期地反复运行。它有效,但我猜它对服务器造成了巨大的压力,并且可能被认为是丑陋和糟糕的做法。我说得对吗?

有什么办法可以保持与脚本的连接并利用 php 的内置输出缓冲来刷新我需要的内容,但是使用某种循环保持脚本无限运行,这样当新数据可用时它可以是输出。这也是一个坏主意吗?

我只是在寻找有更多经验的输入表单开发人员。

最后一件事...

是否有任何其他方法可以保持数据的持续流动(不包括闪光灯或 Silverlight 等技术)?

0 投票
1 回答
2706 浏览

web-services - 如何在猫鼬网络服务器上保持链接活动

我尝试使用keep-alive连接猫鼬,但似乎猫鼬首先关闭了连接。

我更改了 embed.c 以发回连接:keep-alive。响应后连接仍然关闭。

0 投票
3 回答
1320 浏览

sockets - TCP keep-alive 的可扩展性

考虑各种设备的大规模异构网络。这些设备以对等方式向网络上的其他人提供服务。用于跨所有节点跟踪服务可用性的机制当前使用标记为保持活动状态的 TCP 套接字,通常在节点在线期间。这导致每个节点都有一个与每个其他节点(在对等基础设施的子网内)打开的套接字。

关于以这种方式使用 TCP keep-alive 的可扩展性存在哪些争论?

我的替代方法是使用发布/订阅模型,其中节点在新服务可用时将其推送到网络,并且它们的对等点会在它们想要订阅服务时缓存它们。这听起来可行吗?

0 投票
4 回答
77756 浏览

php - 使用 PHP Curl 库的持久/保持活动 HTTP?

我正在使用一个简单的 PHP 库通过 HTTP 将文档添加到 SOLR 索引。

目前涉及3台服务器:

  1. 运行索引作业的 PHP 框
  2. 保存被索引数据的数据库框
  3. 溶胶盒。

在 80 个文档/秒(在 100 万个文档中),我注意到 PHP 和 solr 盒上的网络接口上的中断率异常高(2000/秒;此外,图表几乎相同——当中断PHP 盒上的峰值速率,Solr 盒上也出现峰值),但数据库盒上的峰值要低得多(300/秒)。我想这仅仅是因为我打开并重用了到数据库服务器的单个连接,但是由于 Solr 客户端库的编写方式,每个 Solr 请求当前都通过 cURL 打开一个新的 HTTP 连接。

所以,我的问题是:

  1. 可以使 cURL 打开一个 keepalive 会话吗?
  2. 重用连接需要什么?-- 是否像重用 cURL 句柄资源一样简单?
  3. 我需要设置任何特殊的 cURL 选项吗?(例如强制 HTTP 1.1?)
  4. cURL keepalive 连接有什么问题吗?该脚本一次运行数小时;我可以使用单个连接,还是需要定期重新连接?
0 投票
5 回答
1176 浏览

asp.net - 为什么我的 ASP.NET 页面在没有发送任何身份验证标头的情况下返回“200 OK”?

笔记:

与以前的修订版相比,这个问题的范围扩大了。我试图简化这个问题,以便任何人都可以轻松地复制它。

使用Fiddler,我可以在从 HTTP 请求中删除我的标头后将任意请求重播到我的默认页面Authorization,并且我能够获得200 OK包含有效数据的响应。

赏金更新

以下是重现此确切行为的步骤:

1.在 ASP.NET 中创建一个“新网站”,随意命名为“InsecureWebsite”

2.编辑web.config以拒绝所有未经身份验证的用户:

3.将网站发布到 DEV 服务器上的任意目录,并为应用程序创建一个虚拟目录

4.确保应用程序已启用脚本访问 (.ASP) 和集成 Windows 身份验证

5.打开Fiddler抓取流量

6.在您喜欢的浏览器中加载页面并查看Fiddler中的“Inspectors”选项卡,您将看到类似于以下内容的请求:

初始请求Default.aspx将返回 a 401 Unauthorized,将进行协商,然后最终返回 a 200 OK

然后,在 Fiddler 中,我可以Authorization直接从重播的请求中删除标头,Default.aspx并且仍然获得200 OK. 这怎么可能?

解决方案

事实证明,Fiddler 在发出请求时使用相同的底层连接,因此一旦连接通过身份验证,同一连接上的任何请求也将被验证为与初始请求相同的用户。您可以在此处在 Fiddler 中关闭此功能:

Fiddler 选项截图 http://john.cognitivedelay.com/images/fiddler-options.gif

一旦取消选中,来自 Fiddler 的任何重放请求都将返回 a401 Unauthorized我所期望的。

感谢所有提供时间回复的人!

0 投票
7 回答
37525 浏览

python - Python urllib2 与保持活动状态

如何使用 Python 的 urllib2 发出“保持活动”HTTP 请求?

0 投票
3 回答
3854 浏览

c# - 新的 RDP 客户端保持活动代码失败

对于我们的安全终端服务器项目,我们需要保持 RDP 会话打开,即防止远程计算机超时并锁定会话。一点背景:

我们有几个配置为中间代理的虚拟服务器,其中一个客户端向虚拟服务器启动 RDP 会话,并在那里启动应用程序。该应用程序从数据库中读取连接数据,包括用于连接到最终目标计算机的用户名和密码。

对于远程桌面会话,我们使用从 MSTSCAX.DLL 中提取的 ActiveX 控件(使用 AxImp)。因为用户无权访问远程机器的密码,所以我们绝对必须防止会话超时。

在过去的几个月里,我们一直在使用由 Timer 对象触发的以下代码来完成此操作。效果很好,直到我不得不将 RDP 客户端升级到版本 6 才能访问 Server 2008 机器(我们使用的是版本 4 或 5,不确定是哪个)。从那时起,对 SendKeys 的调用有时会引发 HRESULT E_FAIL 错误——通常足以导致重大问题。

有没有人知道可能导致这种情况的原因?更好的是,有没有人有更好的方法来实现这一点,可以与较新的 RDP 客户端一起使用?

谢谢,戴夫

0 投票
4 回答
1726 浏览

java - 如何让 App Engine/Java 应用程序在来自 Java/Python Web cron 的聋请求的情况下运行?

  1. App Engine 允许您在 30 秒内加载您的应用程序
  2. 我的申请大约需要 30 秒 - 有时更多,有时更少。我不知道如何解决这个问题。
  3. 如果应用处于空闲状态(一段时间没有收到请求),则需要重新加载。

因此,为了避免需要重新加载应用程序,我想通过每隔一段时间 ping 应用程序来模拟用户活动。

但有一个问题。. .

如果我 ping 应用程序并且它已被 App Engine 卸载,我的网络请求将是应用程序的第一个请求,并且应用程序将尝试重新加载。这可能需要超过 30 秒的时间并超过加载时间限制。

所以我的想法是 ping 应用程序但不等待响应。我通过从浏览器访问该站点,发出请求并立即关闭浏览器来手动模拟这一点 - 它似乎使应用程序保持活动状态。

关于在 Python 或 Java web cron 中执行此操作的好方法的任何建议(我假设 Python 解决方案会更简单)?

0 投票
1 回答
4677 浏览

java - Axis Web 服务保持活跃

我有一个在 Tomcat 中运行的轴 Web 服务。在 HTTP 1.1 中,客户端在不发送 Connection: close 标头的情况下进行连接,这意味着默认值为 Keep-Alive。不幸的是,客户端似乎遇到了问题,当它出现异常时,客户端没有关闭连接。由于这些客户端在批处理作业中发送大量流量,这很快就会耗尽我的所有连接。我想强制我的 Web 服务在特定处理程序(扩展 BasicHandler)完成后立即关闭每个连接。

我该怎么做呢?即调用BasicHandler#invoke() 后如何强制服务器关闭连接?

0 投票
2 回答
8602 浏览

iis - 如何为 IIS 启用 TCP keep Alive?

总而言之,我有一个网站,它使用经典的 ASP 和水晶报告根据用户对网页的输入(查询后端数据库)生成报告。如果报告运行时间超过 30 分钟,则位于客户端和 Web 服务器之间的防火墙会在连接处于空闲状态时断开连接,因此报告永远不会显示给用户。为了避免这种情况,我需要使用某种保持活动状态,HTTP 或 TCP。

IIS 6 上 Windows 2000 中的 Web 服务器。我在 Windows 中为 TCP keepalive 创建了注册表项(并禁用了网卡中的 TCP 卸载功能,我听说这会导致问题),但是 IIS 似乎没有默认情况下使用它。我确实在服务器上下载并测试了一个名为 TCP/IP Builder (www.drk.com.ar) 的套接字测试器,它允许您打开和关闭工作正常的 keepalive,因此我知道服务器可以发送它们。

有谁知道如何强制 IIS 使用 TCP Keepalives,因为我假设它必须为 IIS“启用”?

谢谢!