问题标签 [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.
php - 使用 PHP 无限循环与服务器的持久连接
我想保持我的网站更新,在数据库中添加了一项新信息。我不能使用Node.js
and Comet Programming
,并且Javascript's setInterval
由于请求太多,这似乎是个坏主意。
现在我正在使用这样的东西:
Javascript:
PHP:
这是一个好主意吗?我可以毫无问题地使用它吗?也许有人知道保持持久连接的更好方法?(在我的网站上将有大约 500 个在线用户)
php - PHP:如何知道 PostgreSQL 持久连接是否已经打开?
根据 PHP.net 手册,pg_pconnect 将创建一个持久连接,或者如果它已经存在并且具有相同的连接字符串,则返回现有的连接。
我遇到的问题是我想知道该调用是否确实创建了一个连接或实际上返回了相同的连接,例如,在它是第一个连接的情况下加载准备好的语句。
真的有可能吗?
更新:关于这个问题,我不是指当前正在运行的 PHP 脚本。我想知道连接是否已在某个时候打开(可能是其他脚本再次打开)或者这个脚本是第一个打开该连接的脚本(例如,因为我重置了 PostgreSQL 服务器)。
php - 打开多个持久套接字到同一个域?
在使用工作者 MPM 的 apache 服务器上,是否有可能以某种方式打开多个持久套接字到同一个 TCP 地址?
当我执行以下操作时:
我得到了两个独立的套接字资源,但具有相同的底层连接(我可以知道,因为如果我写信,$SocketA
我可以从中读取远程响应,$SocketB
反之亦然)。我想有两个单独的持久连接。
这可能吗?
wcf - WCF 客户端应用程序与非 WCF (DataSnap) 服务器的持久连接
什么有效
我在 Delphi-XE2 中构建了一个 DataSnap Web 服务TDSServer
,它使用和TDSHTTPService
组件。客户端连接到服务器(Web 服务)并运行 DataSnap 服务器方法来检索数据。服务器TDSLifeCycle.Session
用于所有连接。如果可能,我想继续使用Session
,因为我将会话信息存储在线程变量中......
我可以使用 Internet Explorer 对 DataSnap 服务器进行身份验证和检索数据。如果我不让 IE 闲置 30 秒(或者它与服务器断开连接),它将为每个方法请求重用相同的连接。
我可以使用一个简单的 Delphi 应用程序,它使用 TIdHTTP 连接到 DataSnap 服务器。添加keep-alive
到它的Request.Connection
属性使它永远保持连接,并为所有方法调用重用一个连接。
.
问题
第 3 方公司正在构建一个 WCF 应用程序来访问 DataSnap 服务。他们无法让 WCF 应用程序仅使用一个与服务的连接。初始身份验证请求和第一个方法调用使用相同的连接,但后续请求会创建新连接,这可以通过netstat
在他们的计算机上运行并使用多个源端口看到从他们的应用程序到我的服务的新 ESTABLISHED 连接来证明。新连接会在 DataSnap 服务器中创建新线程,这些线程无法访问经过身份验证的线程的会话变量。
.
可能的解决方法
我知道我可以将 DataSnap 服务器更改为Invocation
模型,从而无需为每个客户端维护一个持久连接,并且如果需要,我会这样做。在这样做之前,我认为谨慎的做法是看看是否有其他人知道如何解决问题。
.
我的问题
WCF 客户端应用程序是否有可能创建到非 WCF 服务器(DataSnap 服务器)的单个持久连接,它用于所有方法调用而不创建新连接?这是怎么做到的?是否像在 Visual Studio 中为 C# WCF 项目添加正确的【装饰】一样简单?
任何建议都非常感谢!
.
仅供参考 - 我无权访问第 3 方的代码,因此我无法提供 WCF 代码示例。
php - PHP & mysqli:持久连接和交互式有什么区别?
以下有什么区别:
和
甚至这个...
java - 在 android 和 Apache Server 之间创建持久连接
我需要在 Android 手机 (Java) 和运行 apache 的服务器之间创建通信。我要做什么,需要大量消息来来往往,而且我不知道“要搜索什么”,这将完成这项工作。也许名字是持久连接,也许是套接字……但我想你们中的一个人会知道我应该做什么。Android 手机上的我的代码需要接收恒定数据(以 1 或 2 秒的速率),并以 5 秒的速率发送(例如)。我应该在我的服务器中使用一个简单的 Web 服务器来做这些事情,并且每次打开一个带有 post 和 get 数据的 http 页面,并接收 json`s,还是有一种更简单有效的方法来做到这一点?谢谢!
ios - 取消 HTTP/1.1 分块响应并保持持久连接
这个问题主要是一个 HTTP 问题,我正在开发一个 iOS 应用程序,尽管这个问题并不特定于 iOS。
我想使用持久连接,并且这样做没有问题,直到 HTTP 响应使用分块传输类型,而不是显式发送 Content-Length。响应本身正常工作,如果我不需要取消响应,它就会工作。这个响应可能需要一段时间来发送响应(它可能需要几分钟并且永远不会发送最后的 0 块),而且我经常想取消这个请求(和响应)并在同一个连接上发送一个新请求。
使用 HTTP/1.1,如何在不关闭连接的情况下取消分块响应响应?
我目前的解决方法是不使用持久连接,但是我失去了使用持久连接的所有好处,这使得启动这些请求的速度要慢得多。
php - PHP 中的持久数据库连接
我对 PHP 中的持久数据库连接有一些疑问。
我知道使用持久连接会很有效,因为需要与同一主机/用户建立连接的每个 PHP 进程都可以共享该连接,而无需重新建立连接。
我不明白最新的实现引入了克服未知连接状态问题的功能。
但!如果我有 10,000 个进程共享同一个连接,这将降低我的应用程序的性能,因为它们一次只能使用一个连接!这是真的还是我错了?
php - mysqli持久连接不起作用
我正在使用 php 5.4.4,似乎与mysqli的持久连接不起作用。特别是,让我们看一下这个脚本:
然后,当脚本运行时,打开另一个 shell 并:
我认为这是一个错误:PHP 应该只打开一个持久连接而不是 15 个不同的连接。
这是真的吗?
谢谢大家。
php - PHP 中的 memcached 持久性无法按预期工作
我尝试了一些不同的 memcached 库和插件版本,以实现 PHP memcache 客户端和 memcached 服务器之间的真正持久性。
问题是仍然打开和关闭连接,以便连接计数器上升,而不是重用现有的持久连接。
我已经从 Redhat 机器上的最新源代码编译了 memcached 守护进程。我使用版本 memcached-1.4.14 并以“#/opt/memcached/bin/memcached -vvvv”开头
我还从最新的源版本 memcached-2.0.1 编译的 php 插件,我已经针对 libmemcached-1.0.9 编译它以使其保持最新。目前它不能针对 libmemcached-1.0.10 进行编译。
我的 PHP 脚本如下所示:
在触发脚本时,我在输出中看到没有添加服务器,只有在超时时间之后。
但是连接计数器仍然上升,我想客户端创建了一个连接,并且在服务器端重新使用了持久连接。
在服务器端,我得到详细的输出,告诉我使用了持久性:
我们希望在具有大量传入连接的高性能环境中使用 memcache,而当前的连接数量确实会杀死 apache 子代。任何想法如何实现真正的持久性?
使用的软件:
- 红帽企业 Linux 服务器 6.2 版(圣地亚哥)
- PHP 版本 5.3.3
- Prefork 中的 Apache/2.2.15
- 内存缓存服务器 1.4.14
- libmemcached 1.0.9
- PHP memcached 插件 2.0.1