Работа модуля Push and Pull Битрикса на виртуальной машине до версии 5.0.
|
---|
На серверной стороне поддержка мгновенных сообщений осуществляется модулем NGINX: nginx-push-stream-module. Данный модуль обеспечивает поддержку long-polling соединений с клиентами и доставку опубликованных им сообщений. Примечание: Bitrix Framework и без модуля nginx-push-stream-module обеспечивает достаточно высокую скорость передачи сообщений: 60 секунд интервал, при наличии сообщений интервал между соединениями уменьшается до 10 секунд.
При открытии страницы клиент ajax-запросом, подключается к своему каналу на одном из портов NGINX: 8893 (http) или 8894 (https). (В случае использования виртуальной машины BitrixVM. При использовании собственной конфигурации сервера администратор волен использовать любые удобные ему порты.) С данного порта NGINX перенаправляет пользователя на внутренний сервер очередей (доступный только по 127.0.0.1:8895), где проверятся наличие канала пользователя и новых сообщений. В случае если в канале нет сообщений, сервер не отдает ответ, а держит соединение в течение 40 сек. Если в течение этого времени в канал пользователя придет новое сообщение, то сервер отправит его клиенту и закроет соединение. В случае если в канал пользователя не будет новых сообщений в течение 40 секунд, то сервер разорвет соединение и отправит ему заголовок: 304 Not Modified. После получения ответа сервера и закрытия соединения клиент выполнит повторное подключение к каналу с новой датой последнего изменения. Сообщения в канал пользователя публикуются посредством вызова соответствующих методов API модуля Push and Pull. Для работы с мгновенными сообщениями рекомендуем использовать протокол https. Примечание: Большое значение имеет правильная синхронизация времени сервера с глобальными серверами.
Настройка модуляПри использовании продуктов Bitrix Framework на базе виртуальной машины BitrixVM с v. 5.0 необходимости в настройке модуля нет: всё работает "из коробки". Если проект используется не на штатных средствах установки Bitrix Framework, то необходимо произвести дополнительные настройки. Примечание: Приведённые ниже образцы настроек даны для примера. Настройку под конкретный проект, при отказе от использования рекомендуемых BitrixVM или BitrixEnvironment, администратор должен произвести самостоятельно.
Внимание! Работа модуля Push and Pull поддерживается только до версии 0.5 nginx-push-stream-module. Более свежие версии не поддерживаются, так как для работы Push and Pull разрабатывается специальное решение от "1С-Битрикс".
|
Push and Pull - настройка модуля

Сложность настройки модуля Push and Pull зависит от выбора типа сервера. Опишем настройки по возрастанию сложности. Все настройки осуществляются на странице Настройки > Настройки продукта > Настройки модулей > Push and Pull.
Облачный Push сервер
Для включения облачного сервера достаточно в поле Использовать "Push server" выбрать облачный тип сервера, затем указать нужный сервер и зарегистрироваться:
Использование актуальной виртуальной машины
Если ваш Битрикс установлен на виртуальной машине
BitrixVM версии 7.1 и выше
Виртуальная машина сэкономит время и силы на правильное развертывание и администрирование сайта или внутреннего информационного ресурса на базе продуктов «1С-Битрикс».
Подробнее в курсе Виртуальная машина
, то у вас так же нет необходимости настраивать модуль Push and Pull. В виртуальной машине установлен Push-сервер по умолчанию. Он настроен, сконфигурирован и работает "из коробки".
Если, всё же необходимо произвести некоторые изменения, то это делается на странице Настройки > Настройки продукта > Настройки модулей > Push and Pull:
- Укажите секретный код для подписи сообщения. Это 32-хзначный
произвольный
Придумайте его сами.
код, который указывается в настройках пуш-сервера:
<путь к пуш-серверу>./push-server/config/config.json: "security": { "key": <ваш секретный ключ>
Примечание: В виртуальной машине BitrixVM это поле создается автоматически при первом старте службы или при настройке/обновлении и прописывается в настройки сайта. - При необходимости перенастройте шаблоны путей. Домен в адресе для чтения сообщений можно указать
#DOMAIN#
: такая нотация будет автоматически заменяться под нужный домен для многодоменных конфигураций. Пример: http://#DOMAIN#:8893/bitrix/sub/. - Если в системе несколько активных сайтов, то есть возможность выбрать, на каких сайтах модуль не будет работать.
Устаревшая версия Виртуальной машины
Настоятельно рекомендуем перейти на актуальные версии BitrixVM.
Для устаревших виртуальных машин используйте информацию из спойлеров.
Настройка nginx-push-stream-module в версии 0.4.0
|
---|
|
Настройка nginx-push-stream-module в версии 0.3.4
|
---|
Также необходимо выбрать версию используемой вами машины. Рекомендуется использовать Виртуальную машину в версии 4.4 и выше, так как в ней используется более совершенная версия модуля nginx-push-stream-module 0.4.0, позволяющая использовать технологию Веб-сокетов и отправление команд. Внимание! Если у вас появляется ошибка вида:
XMLHttpRequest cannot load http://example.com:8893/bitrix/sub/?CHANNEL_ID=<уникальный_адрес_канала>&tag=1&rnd=1380619831146. Origin http://example.com is not allowed by Access-Control-Allow-Origin.значит, вы используете версию модуля nginx push stream module до 0.3.4. Необходимо либо обновить версию модуля, либо закомментировать строки: add_header "Access-Control-Allow-Origin" "*"; add_header "Access-Control-Allow-Headers" "if-modified-since, origin, if-none-match"; |
Как использовать модуль, подробно рассказано в курсе Разработчик Bitrix Framework в главе
Push and Pull
Модуль Push & Pull работает в двух режимах:
постоянное подключение к специальному серверу Сервер очередей;
в режиме опроса сервера (60-20-10).
Подробнее в курсе Разработчик Bitrix Framework
.
Документация по теме
- Настройки модуля (документация)
- Зачем настраивать модуль Push&Pull (блог)
- Работа с модулем для разработчиков
- API модуля
- Push-уведомления в курсе «BitrixMobile - создание кроссплатформенных мобильных приложений»
и Ваше мнение важно для нас