Http-Bind принимает 6000 мс

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

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

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

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

Журнал:ЖУРНАЛ

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

0

Решение

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

  1. Firefox по умолчанию имел максимум 8 подключений на сервер. Это настраивается, но будьте осторожны, если вы измените. http://kb.mozillazine.org/Network.http.max-connections-per-server. (Примечание: я думаю, что максимум не 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 второй тайм-аут (который огромен!)

Решения

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

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

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

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

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

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]