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

php - 在 PHP MySQL 应用程序中一起使用持久和非持久连接

我的应用程序的某些部分需要持久连接,特别是每小时可能有 30,000 个选择请求由许多不同用户发出的部分,这导致我的 mysql 服务器最大连接数限制为 100,我真的不不想增加它,因为 100 个连接看起来已经很多了。因此,对于应用程序中读取和选择的部分,我想切换到持久连接。

修改数据的其他部分通常通过事务完成,根据 php 文档,一般规则是永远不要使用持久连接进行事务。所以我想把它保留在非持久连接上。

我的问题是,我能否在同一个应用程序、同一个脚本等中同时使用持久性和非持久性连接?

我正在使用 PHP 5.2+、MySQL 5+(InnoDB 表)和 Zend Framework 10.6+

0 投票
2 回答
2456 浏览

mobile - 持久 TCP 连接、长时间超时和 IP 跳跃移动设备

我们有一个基于 HTTP 的长轮询方案的应用程序(尽管这个问题可能适用于任何基于 TCP 的协议)。我们的超时时间相当长,30 分钟左右。

我们有时会看到移动设备每隔一分钟左右就频繁地从 IP 跳到 IP,这会导致数十个长寿命套接字堆积在服务器上。不禁认为这造成了不必要的负担。

因此,我猜测某些 IP 网关在设备跳出时关闭连接方面比其他网关更好。我能想到的解决这个问题的策略是:

  • 减少超时(增加设备的电池寿命)
  • 当用户重新连接时关闭最后一个活动连接(需要 cookie 或用户 ID 跟踪)

还有其他人吗?

0 投票
1 回答
109 浏览

image - 大量图像的最佳交付方法

我有一个以在线聊天应用程序为中心的网站,每个用户最多可以有数百个联系人。每个联系人都有自己的个人资料图像。我想这样做,以便在名称旁边加载联系人的个人资料图像。然而,让用户每次加载网站时下载 100 多张图片似乎很费力(研究表明,多达 40% 的用户不使用缓存)。每个图像的尺寸约为 60x60 像素。

当我在 google 上搜索或登录 facebook 时,几乎是瞬间提供了数十张图片。除了拥有快速的服务器和良好的连接之外,向用户提供如此多图像的最佳方法是什么?

我想出的可能方法是:

  • 将每个用户的个人资料图像存储在数据库中,在 php 文件中构建一个图像,而不是让用户下载该图像,然后使用 css 显示每个个人资料图像。但是,这在服务器上似乎非常激烈,并且多次引用如此大的文件可能会对用户的浏览器造成影响。
  • 使用 nginx 而不是 apache 来服务图像(nginx 通常更适合服务于诸如此类的静态内容)。但是,这似乎更像是对解决方案的优化,而不是解决方案本身。

我也知道数据可以通过持久的 http 连接传递,因此不必向服务器发出多个请求以获取多个文件。但是,通过一个持久连接可以传递多少文件。这种持久性模型是否意味着仅将图像作为单独的文件加载不一定是一个坏主意?

任何关于相关事务的个人经验的建议、解决方案和/或注释将不胜感激。可扩展性在这里非常重要,以及跨浏览器支持(IE7+、Opera、Firefox、Chrome、Safari)

编辑:我没有使用 JQUERY。

0 投票
4 回答
1467 浏览

php - 跨 AJAX 调用保持 FTP 连接 PHP 资源

我有一个可以通过 AJAX 与 FTP 服务器交互的多用户 PHP Web 应用程序。该应用程序允许用户浏览 FTP 站点。Javascript 进行 AJAX 调用,该调用与返回给定目录中文件和目录列表的服务器脚本通信。

这工作正常。但是,每次请求目录列表时,服务器都必须重新建立与 FTP 服务器的连接,这需要很长时间。

我需要跨 AJAX 调用保持 FTP 连接 PHP 资源。换句话说,连接必须保持打开状态,并且我必须能够使用该资源运行 ftp_nlist(),而无需在每次新的 AJAX 调用时重新建立连接或重新验证(当然,直到连接超时) .

谁能想到一种方法来做到这一点?

0 投票
1 回答
498 浏览

php - PHP 和持久连接

每当我打开与 DB 的持久连接时,如果 DB 守护程序崩溃然后重新启动,则 30% 到守护程序的新连接将导致管道中断错误。

这可以通过更改持久连接句柄来解决,但需要手动完成。有没有一种解决方案可以在不更换手柄的情况下修复损坏的管道错误?

0 投票
4 回答
319 浏览

php - 持久的php连接?

是否可以让 php 脚本在某个点暂停等待 ajax 响应,然后继续执行?

如果不是,那么存储脚本的当前状态(所有定义的变量等)直到再次调用它的最合适的方法是什么?

0 投票
1 回答
35956 浏览

mysql - 如何更改mysql持久连接的超时

持久连接的超时定义在哪里?有可能改变它吗?

0 投票
1 回答
896 浏览

ios - 将消息从 Azure 应用程序推送到 MonoTouch (iPhone) 应用程序,无需 Apple 推送通知

我目前正在为 iOS 设计一个应用程序(使用 MonoTouch),它将在 Windows Azure 上运行一个服务器组件。该应用程序本质上是一个聊天类型的应用程序,用户将在其客户端中生成消息并将它们发送到服务器,然后服务器需要将这些消息转发(尽可能快)到用户可能正在发送消息的其他客户端至。

我的问题是 - 是否有推荐的做法来构建这样的应用程序,客户端需要从服务器接收“推送”消息?

我考虑了一些选择,但希望得到反馈。

  • 第一种选择是使用 Apple 的推送通知服务 (APN)。我对此有两个担忧——首先,客户端只需要在他们在线时接收消息(APNs 也会在应用程序关闭时发送消息,我不需要或不想要);其次,有可能会有大量消息,我知道苹果可能会对此感到不满(完全公平)。

  • 我考虑的第二个选项是使用 Web 服务(基于 WCF)并让客户端每(例如)2-3 秒调用一次该服务,这是我们可以容忍的最大延迟。不过,这似乎涉及大量可能不必要的网络流量(“你有什么要给我的吗?”、“没有”、重复令人作呕)。

  • 第三种选择是在客户端和服务器之间保持持久的 Web 服务连接。当客户端应用程序启动时,它会在后台线程上调用 Web 服务方法。服务器将保持连接打开(不返回任何内容),如果有任何消息通过,它将立即返回它们。此连接可能会在 2 分钟后超时,此时它将重新建立。这似乎可以满足我的要求,但我再次担心,任何时候都会有很多连接打开到服务器,这可能会不必要地占用服务器资源。

  • 第四种选择是通过 TCP(或 UDP,尽管根据我的发现,Windows Azure 不支持此)使用持久连接。这似乎是一个不错的选择,但同样,在服务器使用方面可能有点过头了——任何时候都可能有数百甚至数千个客户端连接。

  • 第五个选择是让服务器以某种方式将消息直接推送到客户端,可能通过让客户端运行迷你 Web 服务器或类似的方式。但是,由于该应用程序将在 3G 和 WiFi 网络(超出我的控制范围)上运行,我不希望传入端口会为此类事情打开。

如果有人有任何其他建议,或者认为上述选项之一是个好主意(或者是解决此类问题的标准方法),我很想听听。

提前致谢,

约翰

0 投票
2 回答
2957 浏览

php - CodeIgniter 多个数据库持久连接?

我在我的 CodeIgniter 应用程序中使用了多个数据库,并且已经阅读了很多应该关闭持久连接的内容。

为什么建议采用此措施,并且在最新版本 2.0.2 中仍然需要此措施?

我正在做类似的事情

0 投票
1 回答
446 浏览

web-services - 测试 Web 服务中的持久或非持久连接

我有一个网络服务。我正在创建一个测试应用程序以从该 Web 服务中获取响应。添加了对 Web 服务应用程序的服务引用。

我的测试应用程序中的逻辑如下。

只是想知道我是在这种方法中建立持久连接还是非持久连接。有什么帮助吗?