2016-12-02 76 views
0

我有一个用PHP,JavaScript和jQuery编程的CRM。我们还有一个用于voip的XMPP和http-bind。Http绑定需要6000ms

我的问题是:当我加载CRM时,第一对http绑定需要正常时间(< 50ms),之后它们总是需要6000ms左右。

这个代码被分割成多个文件并且很多。我不知道要添加哪部分代码,所以我现在就放弃代码并在需要时添加代码部分。

我对http绑定和XMPP相当陌生,可悲的是找不到任何有用的东西,所以我非常感谢任何信息或帮助。

登录:LOG

提前感谢!

回答

3

三个事实提供的信息:

  1. Firefox的默认使用有每个服务器最多8个连接。这是可配置的,但如果您更改,请小心。 http://kb.mozillazine.org/Network.http.max-connections-per-server。 (注意:我认为最大不是15个永久连接,但它看起来不像您使用的是最新的Firefox或开发插件?)

  2. 默认情况下,持久连接(即连接到服务器打开并可重新使用 - 见https://en.wikipedia.org/wiki/HTTP_persistent_connection)在关闭前保持打开状态60秒。

  3. 浏览器发出8个并发呼叫,然后在下一个呼叫之前等待60秒。

什么应该发生:

  1. 浏览器打开(最多)8个连接,使(最多)8个中并行请求。
  2. 一旦请求被响应,浏览器将重新使用相同的连接。
  3. 如果失败了,它会发出一个“保持活动状态”告诉服务器保持连接打开。
  4. 如果连接在X秒内未使用(X取决于服务器)并且未收到保持活动状态,服务器将关闭连接。

如果您失败的是步骤(2),浏览器不会重新使用相同的连接。当它有8个连接打开时,它不能拨打第9个电话

因此,无论浏览器是否无法重新使用连接,但发送“保持活动”长达60秒然后停止(因此服务器关闭连接)或浏览器发生故障关闭连接和服务器配置60秒超时(这是巨大的!)

解决方案

  1. 我相信这是不可能的,这两个浏览器和服务器被破坏/配置错误,而且看起来你使用的是旧版本的Firebug(o r克隆或插入另一个浏览器)从那里开始?为了进行测试,同时更改浏览器和调试工具:

    • 如果Firebug的:这不是正在开发更多的,所以你应该开始使用 中,建立FireFox的开发工具(但如果失败,完全尝试使用其他浏览器)

    • 如果使用Chrome或Edge,请使用其内置工具。

    • 或者,使用Fiddler(windows)或Charles(Mac)。但是,请记住还要尝试其他浏览器。

  2. 你的选择是关闭的保持有效指示/持久连接,检查服务器配置为<60秒超时。更多的参与,所以从浏览器和调试工具开始。

+0

感谢人帮了很多 – jogoe