2016-12-02 4 views
0

У меня есть CRM, который запрограммирован с PHP, javascript и jQuery. У нас также есть XMPP и http-bind для voip.Http-bind принимает 6000ms

Моя проблема: когда я загружаю CRM, первая пара http-привязок занимает обычное время (< 50 мс), после чего они всегда занимают около 6000 мс.

Код для этого разделен на несколько файлов и является LOT. Я не знаю, какую часть кода добавить, поэтому я просто оставлю код прямо сейчас и добавлю его части, если это необходимо.

Я довольно новичок в http-binding и XMPP и, к сожалению, не нашел ничего полезного, поэтому я ценю любую информацию или помощь.

Log: LOG

Заранее спасибо!

ответ

3

Три факты, которые предоставляют информацию:

  1. Firefox по умолчанию используется, чтобы иметь максимум 8 соединений на сервер. Это настраивается, но будьте осторожны, если вы измените. http://kb.mozillazine.org/Network.http.max-connections-per-server. (Примечание: я думаю, что max не содержит 15 постоянных подключений, но похоже, что вы используете последние плагины Firefox или dev?)

  2. По умолчанию постоянные подключения (т. Е. Соединения с сервером, который остается открытые и могут быть повторно использованы - см. https://en.wikipedia.org/wiki/HTTP_persistent_connection) остаются открытыми в течение 60 секунд до закрытия.

  3. Браузер выполняет 8 одновременных вызовов, а затем ждет 60 секунд до следующих.

Что должно происходить:

  1. откроется браузер (до) 8 соединений и делает (до) 8 запросов Parellel.
  2. После ответа на запрос браузер повторно использует одно и то же соединение.
  3. В противном случае он выдаст «keep-alive», чтобы сообщить серверу о том, что соединение открыто.
  4. Если соединение не используется в течение X секунд (X зависит от сервера) и не поддерживается сохранение, сервер закроет соединение.

Если вы ошибаетесь, это шаг (2), браузер не использует повторное использование того же соединения. Затем он не может сделать 9-й вызов, пока он имеет 8 подключений.

Таким образом, браузер не может повторно использовать соединение, но отправляет «keep-alives» на срок до 60 секунд, а затем останавливается (поэтому сервер закрывает соединение) или браузер не может закрыть соединение и сервер настроен на 60-секундный тайм-аут (который огромен!)

Solutions

  1. Я полагаю, что это маловероятно, что оба браузера и сервера сломаны/неправильно сконфигурированы, и, похоже, вы используете старую версию Firebug (o r некоторый клон или подключить к другому браузеру) начать там?Для тестирования изменить оба браузера и инструменты отладки:

    • Если Firebug: это не развивается больше, так что вы должны начать использовать в-строить FireFox средства разработки (но если это не удается, попробуйте другой браузер полностью)

    • Если Chrome или Edge используют свои встроенные инструменты.

    • В качестве альтернативы используйте Fiddler (окна) или Charles (Mac). Но все же не забудьте также попробовать другой браузер.

  2. Вы альтернатива отключить Keep-alives/постоянные соединения и проверьте сервер настроен на < 60 второй тайм-аута. Немного больше задействовано, поэтому начинайте с инструментов браузера и отладки.

+0

спасибо, что помог много – jogoe

Смежные вопросы