Дата последнего изменения: 13.11.2023
Если проект находится на отдельном сервере, то необходимо использовать настройку путей в модуле Push & Pull, позволяющая современным браузерам ходить напрямую на сервер очередей.
До появления этой опции в версии 15.5.1 приходилось делать проксирование запросов. (Запрос отправлялся на сервер сайта, так как старые браузеры не поддерживают прямые запросы AJAX на другие домены, и уже оттуда запрос перенаправлялся на сервер очередей через внутренние правила). Это создавало нагрузку и лишний трафик.
Теперь все новые браузеры обращаются напрямую на сервера. Но из-за особенности работы нашей реализации JS с сервером, им приходится делать дополнительно на каждое подключение OPTIONS запрос. Чтобы избавится от него, необходимо изменить конфигурационные файлы сервера.
Откройте файл bx/conf/im_subscrider.conf
, в описании локейшена location ^~ /bitrix/sub {
проверьте есть ли у вас такое условие:
if ($arg_time) { push_stream_last_received_message_time "$arg_time"; }
Если нет, то добавьте. Выглядеть это должно примерно так:
push_stream_subscriber long-polling; push_stream_allowed_origins "*"; push_stream_channels_path $arg_CHANNEL_ID; push_stream_last_received_message_tag $arg_tag; if ($arg_time) { push_stream_last_received_message_time "$arg_time"; }
После этого воспользуйтесь методом COption::SetOptionString:
COption::SetOptionString("pull", "nginx_headers", "N");
После этого, при подключении, все пользователи будут генерировать к серверу на один запрос меньше (это произойдет не сразу, а по мере обновления JS кода у клиента, перезапуска страницы).