问题标签 [persistent-connection]

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 投票
1 回答
5154 浏览

java - Java 服务器 - TCP 套接字检测 EOF 而不关闭套接字连接

在套接字连接保持打开状态时从 TCP 套接字读取时,有没有办法检测 EOF?

我见过的大多数例子都是这样的:

然而,这意味着每次您想要接收一条新数据时都必须创建一个新连接。在我的情况下,这是一个恒定的图像流,以字节形式通过套接字发送,我想处理每个图像而不必关闭它们之间的连接,这样我就可以拥有与单个用户关联的所有图像,以及它只是更有效地不要频繁地打开和关闭连接。

那么有没有办法做到这一点或一些关于可能替代方案的信息?

0 投票
1 回答
1385 浏览

javascript - 在 javascript html5 音频预加载上取消 http 请求

我正在尝试使用 javascript 预加载音频文件。我正在使用chrome,当我的文件的http请求增长的文件数被chrome取消时......为什么?我能做些什么?这是我的代码:

0 投票
0 回答
243 浏览

php - 另一个父级是否可以关闭异步持久连接

我制作了一个 cron 文件,它异步调用不同的作业,并最终调用了 sleeper 异步。sleeper 休眠 1 分钟,然后异步调用 cron 脚本等。

但我想重建系统以将最后一个“文件指针”存储在文件中,并稍后使用它来停止进程。那是可以制造的吗?

代码示例:

卧铺.php

cron.php

对象.php:

*更新*** 通常你在使用完一个持久连接后关闭它。但是因为我使用异步(stream_set_blocking)持久连接(fsockopen)而不关闭,所以脚本可以在没有父级的情况下继续每分钟循环。(Cron.php 调用 Slepper.php 调用 Cron.php 等)

我想重建我的脚本来存储最后一个“文件指针”,以便以后可以使用它来关闭持久连接。

我读了很多,但还没有找到方法。 PHP:socket_import_stream - 手册

例子:

对象.php

停止.php

PHP:资源类型列表 - 手册

PHP:持久数据库连接 - 手册

0 投票
4 回答
1440 浏览

java - 可以使用 JAVA sql 打开到不同远程 MySQL 服务器的两个持久连接吗?

因此,我试图通过引用位于不同 MYSQL 服务器中的表来运行在远程 MySQL 服务器中创建表的代码。我试图在其中创建表的服务器有空间限制,并且被引用的表非常大,因此它们必须保存在不同的远程服务器上。

我正在尝试找到一种方法来同时建立与两个数据库的持久连接(使用 JDBC 库),这样我就不必一直缓冲少量数据行......我希望能够直接引用数据。

例如,数据库 A 包含我引用的数据,而数据库 B 是我创建新表的位置。假设我在数据库 A 中引用的表是 1,000,000 行。而不是说,打开与数据库 A 的连接,缓冲 10,000 行,关闭连接,打开与数据库 B 的连接,写入该数据库,删除我的缓冲区,然后重复......

我只想与数据库 A 建立持久连接,因此每次写入数据库 B 都可以引用数据库 A 中的数据。

这可能吗?我尝试了几种方法(主要是通过创建仅在连接中断时才刷新的新连接对象),但我似乎无法让这个想法奏效。

有没有人使用 JDBC 做过类似的事情?如果是这样,如果你能指出我正确的方向,或者告诉我你是如何让它工作的,我将不胜感激。

0 投票
4 回答
3105 浏览

c# - 是否可以通过http将数据从客户端流式传输到服务器?

我想将数据从客户端(桌面或移动)流式传输到托管服务器。这不是大量数据,每 1/10 秒 1 个字节 - 但数据需要立即流式传输(无缓冲),并且连接需要长时间保持活动状态(例如最多 10 分钟)。

因为服务器是托管的,所以我无法使用套接字——只有 http。

我知道在服务器端,如果我要连接到客户端,我可以使用持久连接并写入响应流来执行此操作。

但是有没有办法反过来做到这一点,即客户端与服务器建立持久连接并写入请求流?

澄清:我不必将此客户端->服务器通信作为持久http连接完成,我只是想知道是否可能,这样我就可以与我计划的服务器->客户端持久http连接对称。

从我听到的情况来看,听起来我应该能够做单独的 http 帖子并实现相同或相似的延迟。

0 投票
0 回答
1479 浏览

node.js - 使用 node.js 设置持久连接

我很难找到以下问题陈述的解决方案
实现一个简单的 Web 服务器,它将支持持久连接,即将遵守 HTTP 标头“连接:保持活动”。因此,当浏览器在同一 TCP 连接上发出下一个 HTTP 请求时,应该提供下一页。

所以我想知道,这可能使用 node.js 吗?任何帮助深表感谢 。谢谢

0 投票
2 回答
542 浏览

php - 确保使用 oci_pconnect 时 php 会话获得相同的 oracle 会话

我想使用全局临时表来存储一些昂贵的中间数据。数据是瞬态的,但在 php 会话期间很好,因此使用全局临时表似乎on commit preserve rows是理想的。

但是.. 看起来全局临时表数据仅对创建它的 oracle 会话可用。

因此,这引发了一个问题,即我如何确保 oci_pconnect 能够返回相同的 oracle 会话,因为我已经读到 oracle 会话对于每个持久连接都是唯一的?我对跨多个 php 执行使用事务不感兴趣,只是临时表。

我正在使用 php 会话,因此可以将其用作选择 oracle 会话的标识符。

到目前为止,这似乎是不可能的,但问一下也无妨。

编辑:实现这一点的预期目的是加速访问我的访问控制中使用的用户组成员信息。
提前解析组成员资格并使用此临时数据代替在所有后续查询中消除了 3 层以上的连接。由于返回的键是RAW,将它们序列化到外部存储会导致HEXTORAW()再次调用 on usage ,并且似乎对预期目的没有帮助。

为确定组级别访问而添加的查询部分在会话期间是静态的,并且自行运行会返回大约 600 行唯一的 16 字节RAW密钥。然后通过链接表将这些键与结果集结合起来,以确定用户是否对结果集具有任何“组级别”权限。

我玩过使用 IN 并将键作为字符串传递,但由于它们是 RAW 键,因此我必须HEXTORAW()每次查询调用 600 次。性能不如使用临时表和执行JOIN.

有没有其他方法可以告诉 Oracle 将查询的那部分结果缓存起来,而不是将它们写入“永久”中间结果?

0 投票
2 回答
1370 浏览

http - 蜂窝网络上不支持 HttpWebRequest AllowReadStreamBuffering 属性?

我正在编写一个通过 http 使用持久连接的应用程序 - 也就是说,Web 服务器永远不会“完成”对响应流的写入,而客户端应用程序会在响应流进入时从响应流中读取数据。

我编写了一些 .NET 3.5 桌面/winforms 应用程序来确认服务器和客户端代码工作正常,然后编写了一个 windows phone 应用程序来做同样的事情。桌面/电话代码之间的唯一区别是我在电话上将 AllowReadStreamBuffering 属性设置为 false。

电话应用程序昨晚工作,但今天它不起作用 - 尝试读取响应流时,它会挂起,直到从服务器端关闭连接 - 这意味着 HttpWebRequest 不支持 AllowReadStreamBuffering 设置。

昨晚和现在的区别在于,昨晚我使用的是 wifi,而今天我是通过蜂窝网络连接的。

我的假设是,在电话上,HttpWebRequest 仅在连接是 wifi(可能还有以太网)时才尊重 AllowReadStreamBuffering = false,但在使用蜂窝网络时它会忽略它并缓冲。

那么 HttpWebRequest 在通过蜂窝连接时强制读取流缓冲是真的吗?我还没有找到任何证实这种行为的文档,所以我想知道是否有其他人经历过这种情况。稍后我将能够更彻底地对此进行测试,但现在我想我会问这个问题。

更新 5-11-12
测试并回答了我自己的问题(见下文)

0 投票
1 回答
854 浏览

xpages - xpages 和 domino 中的持久连接

当我从浏览器登录到 xpage 应用程序时,连接断开在 5 分钟内完成,而当我访问传统的 domino 应用程序时,连接断开大约是 1 分钟。我在单个服务器上使用基于会话的身份验证,并且在这两种情况下都设置了 domauthsessid。我正在使用 netstat 来跟踪会话。为什么 xpage 连接超时与普通应用程序不同?我的 xpage 上没有任何 keepalive 设置。为了对服务器文档进行测试,我将持久连接超时设置为 600 秒。但是我的任何一个应用程序都没有达到该超时。

0 投票
2 回答
2775 浏览

php - “mysqli::close”是否关闭持久连接?

PHP 文档说“mysql_close() 不会关闭持久链接”。

mysqli (mysqli::close()) 一样吗?