2011-12-06 28 views
35

据我所知,在目前的时间,2011年末,每服务器的最大连接数限制仍然为6个。如果我错了,请纠正我的错误。这很糟糕,我们无法像Firefox那样轻松解决这个问题。据我所知,这个值是硬编码的。将Chrome浏览器的每服务器最大连接数限制提高到6以上

其中一个解决方案是下载Chromium的源代码并重建它们。有更简单的解决方案吗?

有没有什么棘手的方法来破解这个,而不创建一打镜像域?

为什么我问的问题:我的任务是创建一个html-javascript幻灯片,它将在全屏浏览器中运行,并且巨大的显示器挂在墙上。这个javascript真的很复杂,它预先载入照片,并对我的Web服务进行了大量的Ajax调用。如果WIFI连接速度慢,如果加载6张照片,则AJAX调用失败,应用程序运行不正常。我想要一个基于http或浏览器或ubuntu的快速解决方案,因为重新构建JavaScript应用程序需要几天的时间。

Offtopic:你知道在我的具体情况下可以调整的其他任何东西吗?

+2

这似乎是开放增强请求,但不幸的是他们不看急于添加配置选项https://code.google.com/p/chromium/issues/detail?id=85323 – jamshid

+2

如果我们可以将“随机模式”添加到SwitchySharp插件中,我们可以将25个请求同时分成25个代理端口连接。它应该围绕每个服务器的最大连接数限制工作。 – diyism

+2

那么你可以使用firefox,并在'''about:config''中配置'''network.http.max-persistent-connections-per-server'' config – joecks

回答

24

如果每个域限制有2个连接,IE会更糟。但我不会依靠修复客户端浏览器。即使你可以控制它们,像chrome这样的浏览器也会自动更新,未来的版本可能会有不同的表现。我会专注于在您的系统设计中解决问题。

你的选择是:

  1. 负荷序列中的图像,使得只有1或2 XHR呼叫是活跃在同一时间(使用从以前的图像的成功事件,以检查是否有更多图片下载并开始下一个请求)。

  2. 使用子域名,如serverA.myphotoserver.com和serverB.myphotoserver.com。每个子域都有自己的连接限制池。这意味着如果你愿意,你可以有2个请求去5个不同的子域。垮台是照片将根据这些子域被缓存。顺便说一句,这些不需要是“镜像”域,你可以制作额外的DNS指针到完全相同的网站/服务器。这意味着您不必管理多台服务器,只需要一台拥有多个DNS记录的服务器。

+0

我会做什么:1)增加TTL,2)使用img.complete控制序列中的图片,3)将紧急供稿分开域 – Dan

+0

3)并计算我库中打开连接的数量,(这很简单! )。图像饥饿,可以下载长达20秒,所以我只剩下其中4个同时下载(放入一个链),留下2个频道的饲料。 – Dan

0

似乎没有破解可执行文件行为的外部方法。

您可以修改Chrome(ium)可执行文件,因为这些信息显然是编译好的。这种方法带来了很多支持和自动升级的问题,所以您可能想避免这样做。您还需要了解how to make the changes这些二进制文件,而这些文件不是大多数人可以在几天内拿到的东西。

如果您编译自己的浏览器,则会因为您遇到特定的修订而自行创建支持问题。如果你想获得新功能和错误修复,你将不得不重新编译。所有这些都涉及跟踪Chrome开发中的错误并构建破坏 - 而不是Web开发人员需要做的事情。

我现在会遵循@ BenSwayne的建议,但是可能值得考虑在客户端(网络浏览器)之外完成一些工作,并将其放在运行在相同或不同计算机上的后台进程中。这个过程可以处理更多的连接,你只是负责从中获取数据。由于它是本地(ish),即使连接最少,您也可以快速返回结果。

+1

我推荐这个答案。你应该如何编辑二进制文件来达到这个效果,甚至如何使用它的内存编辑器。在Chrome上发布一个教练,让Chrome能够做这样的事情。 Chrome开发人员抱怨人们做出不支持的配置,因此让他们对于他们来说绝对是地狱。 – jgmjgm

1

我不知道你可以在Windows以外的Chrome浏览器中执行此操作,但有些谷歌搜索显示Chrome(因此可能是Chromium)可能会对某些注册表破解做出很好的反应。

但是,如果您只是在不修改代码库的情况下寻找简单的解决方案,那么您考虑过Firefox吗?在about:config中,您可以搜索“network.http.max”,并且有几个值肯定值得一看。另外,对于不会移动的设备(例如,它安装在固定的位置),您应该考虑不使用Wi-Fi(即使家用插头的延时/稳定性/连接断开)。

4

BTW,HTTP 1/1规格(RFC2616)建议每台服务器不超过2个连接。

使用持久连接的客户端应该限制它们维护给定服务器的同时连接的数量。单用户客户端不应与任何服务器或代理保持2个以上的连接。代理应该使用最多2 * N个连接到另一台服务器或代理,其中N是同时活动用户的数量。这些准则旨在改进HTTP响应时间并避免拥塞。

+7

是的,但RFC2616是18岁,所以它的建议应该与一粒盐。 – Davio

+2

RFC2616自2014年以来一直死亡,不应依赖其提供指导。它被全部替换为6个RFC:7230,7231,7232,7233,7234和7235.从您的大脑中删除RFC 2616。它只存在于历史神器中。 –

相关问题