问题标签 [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.
html - 浏览器中的最大并行 HTTP 连接数?
我正在创建一些与 HTTP 服务器(彗星、反向 AJAX 等)的暂停连接。它工作正常,但我看到浏览器只允许同时挂起两个到给定域的连接。因此,如果用户在浏览器的 Tab1 中查看我的网站,然后还尝试在 Tab2 中加载它,他们已经用完了两个允许的与我的网站的连接。
我想我可以做一些通配符域的事情,让我的 HTTP 服务器将任何地址解析到我的站点,例如:
所以:
all 仍然指向 ( www.example.com/webapp
) 但浏览器认为它们是不同的域,所以我没有遇到 2 个连接限制。这是真的?
即使这是真的 - 每个浏览器的活动连接数是否有任何限制,跨所有域?假设我使用上面的方案 - 例如,Firefox 在任何给定时间只允许 24 个并行连接吗?就像是:
我刚刚选择了 24 个连接/Firefox 作为示例。
java - 如何设计具有许多持久连接的服务器
我正在设计一个应用程序,其中许多客户端连接到中央服务器。该服务器保持这些连接,每半小时发送一次保持连接。服务器有一个嵌入式 HTTP 服务器,它为客户端连接提供接口(例如http://server/isClientConnected?id=id)。我想知道解决此问题的最佳方法是什么。我目前的实现是在Java中,我只有一个以ID为键的Map,但是为每个连接启动一个线程,我不知道这是否真的是最好的方法。任何指针将不胜感激。
谢谢,
艾萨克·沃勒
java - Flash 客户端和 Java 服务器之间的持久连接
我是 Flash 新手。我打算在 Flash 中创建一个游戏客户端(在浏览器中运行),它需要与用 Java 编写的服务器通信。客户端和服务器之间的连接需要是持久的。
我知道 XMLSocket - 这是唯一的方法吗?有什么建议吗?
谢谢!
vb.net - vb.net如何检查网络驱动器是否被持久映射
我使用以下代码在系统上布局网络驱动器。我想为持久性添加第三列,但在 vb.net 中我不知道如何检查驱动器是否具有持久性映射。有什么建议么?
asynchronous - Tornado 网络和持久连接
如何在 TornadoWeb 中编写支持持久连接的 Http 服务器。
我的意思是能够在不关闭连接的情况下接收许多请求并回答它们。它实际上是如何异步工作的?
我只想知道如何编写处理程序来处理持久连接。它实际上是如何工作的?
我有这样的处理程序:
完成时执行调用回调。
我的假设是否正确,即 post 将被多次调用,并且对于一个连接计数将随着来自客户端的每个 httprequest 而增加?但是对于每个连接我都会有单独的计数值?
python - Tornado Web 框架 Mysql 连接处理
我最近一直在探索 Tornado Web 框架,以便为许多不同的客户端提供许多一致的连接。
我有一个请求处理程序,它基本上采用 RSA 加密字符串并对其进行解密。解密的文本是一个 XML 字符串,由我编写的 SAX 文档处理程序解析。一切正常,执行时间(每个 HTTP 请求)大约为 100 毫秒(包括解密和解析)。
XML 包含用户的用户名和密码哈希。我想连接到 MySQL 服务器以验证用户名是否与应用程序提供的密码哈希匹配。
当我基本上添加以下代码时:
执行 HTTP 请求所需的时间高达 4 - 5 秒!我相信这是在连接到 MySql 数据库服务器本身时发生的。
我的问题是如何加快速度?我可以在全局范围内声明 MySQL 连接并通过创建新游标在请求处理程序中访问它,还是会因为 Tornado 的异步设计而遇到并发问题?
基本上,我怎么能不必每次 Http 请求都与 MySQL 服务器建立新连接,所以它只需要几分之一秒而不是几秒来实现。
另外,请注意,SQL 服务器实际上与 Tornado Web 服务器实例在同一台物理机器上
更新
我只是通过分析器运行了一个简单的 MySQL 查询,下面的代码相同。
单独执行对“connections.py”初始化函数的调用需要 4.944 秒。这似乎不对,是吗?
更新 2
我认为使用一个连接运行(甚至使用非常简单的数据库连接池运行几个连接)将足够快以处理我期望的每个 tornado Web 服务器实例的吞吐量。
如果 1,000 个客户端需要访问一个查询,典型的查询时间是数千秒,最不幸的客户端只需等待一秒钟即可检索数据。
java - 如何有效地重用 HttpClient 连接?
我非常频繁地(>= 1/秒)对 API 端点执行 HTTP POST,我想确保我有效地执行此操作。我的目标是尽快成功或失败,特别是因为我有单独的代码来重试失败的 POST。有一个很好的HttpClient 性能提示页面,但我不确定详尽实施它们是否会带来真正的好处。这是我现在的代码:
禁用对陈旧连接的检查是否有意义?我应该考虑使用MultiThreadedConnectionManager吗?当然,实际的基准测试会有所帮助,但我想首先检查我的代码是否在正确的轨道上。
php - MySQL 持久连接
我有 10 个应用程序服务器和 1 个 mysql 数据库。我想为 mysql 做连接池,但是仅仅启用 mysql_pconnect() 是行不通的,因为它会导致一些服务器比其他服务器拥有更多的连接。
这种情况的最佳解决方案是什么..?
php - PHPMailer 中的持久 SMTP 连接
如何在 PHPMailer 中启用持久 SMTP 连接?
我会发送很多电子邮件,因此通过持久连接可能会获得性能提升。
jquery - 在设置彗星代码方面需要帮助
有谁知道一种方法,或者可能认为可以将 Node.js 与 Nginx http 推送模块连接起来,以保持客户端和浏览器之间的持久连接。
我是彗星的新手,所以只是不了解出版等,也许有人可以帮助我。
到目前为止我设置的内容如下。我下载了 jQuery.comet 插件并设置了以下基本代码:
客户端 JavaScript
从中我可以理解的是,客户端将继续收听 url,然后是 /broadcast/sub=getIt。当有消息时,它将触发 updateFeed。
非常基本且易于理解的 IMO。
Nginx http 推送模块配置
default_type 应用程序/八位字节流;发送文件;keepalive_timeout 65; push_authorized_channels_only 关闭;
好的,现在这告诉 nginx 在端口 80 上侦听对 /broadcast/sub 的任何调用,并将返回发送到 /broadcast/pub 的任何响应。
也很基本。这部分并不难理解,并且在互联网上有很好的记录。大多数时候,这背后都有一个 ruby 或 php 文件来进行广播。
我的想法是让 node.js 广播
/broadcast/pub
。我认为这会让我persistent streaming data
在不中断连接的情况下从服务器到客户端。我尝试了循环请求的长轮询方法,但我认为这会更有效。
或者这行不通。
Node.js 文件
现在创建 Node.js 我迷路了。首先,我不知道如何让 node.js 以这种方式工作。
我用于长轮询的设置如下:
这会侦听端口 8000 并仅写入响应变量。
对于长时间的轮询,我nginx.config
看起来像这样:
这只是将端口 80 重定向到 8000 并且工作正常。
有没有人知道如何让 Node.js 以 Comet 理解的方式运行。会非常好,你会帮我很多。
资源
用过的
要使用 faye,我必须安装 comet 客户端,但我想使用 Nginx 提供的客户端。这就是为什么我不只使用faye。nginx 使用的那个更加优化。
额外的