276  /  330

Работа с модулем Push & Pull

Просмотров: 2453 (Статистика ведётся с 06.02.2017)

Модуль доступен в редакциях "1С-Битрикс: Управление сайтом" Эксперт и выше, а так же во всех редакциях "1С-Битрикс: Корпоративный портал".

Что за модуль и зачем он нужен

Детально о работе и настройке модуля смотрите в соответствующей главе курса Администратор.Модули.

Режимы работы

Модуль Push & Pull работает в двух режимах:

  • постоянное подключение к специальному серверу Сервер очередей;
  • в режиме опроса сервера (60-20-10).

Первый режим рекомендуемый, от него вы получите настоящую интерактивность, но от вас потребуется настроить Сервер очередей или взять готовую сконфигурированную виртуальную машину.

Второй режим используется когда по каким-то причинам невозможно использовать первый. В таком случае модуль будет каждые 60 секунд обращаться на сервер и проверять, есть ли данные. Если есть, то следующий хит будет через 10 секунд. Если данных больше нет, то хит будет сначала через 20 секунд, а потом через каждые 60 секунд. Тем самым будет создан эффект интерактивности.

Какой способ выберет клиент на своем сайте (сервер очередей или опрос сервера), работа с модулем останется одинаковой (кроме работы с общим каналом).


Само API делится на PHP и JS часть, ниже описаны принципы работы с ним.

Примечание: В документации описаны не все существующие классы и события. Все остальные классы, которые вы можете видеть с помощью модуля LiveAPI являются служебными и не рекомендуются к использованию.


PHP классы

Для начала работы вам необходимо подключить модуль:

if (!CModule::IncludeModule('pull'))
   return false;

и зарегистрировать зависимость на модуль PULL. Регистрируем обработчик зависимости:

RegisterModuleDependences("pull", "OnGetDependentModule", "your_module", "CYourModulePullSchema", "OnGetDependentModule" );

Далее создайте свой класс. Код класса

class CYourModulePullSchema
{
    public static function OnGetDependentModule()
    {
        return Array(
            'MODULE_ID' => "your_module",
            'USE' => Array("PUBLIC_SECTION")
     );
     }
}

Если ваш код работает в публичной части, необходимо указать:

'USE' => Array("PUBLIC_SECTION")

Если кроме публички, нужна еще и админка, то укажите:

'USE' => Array("PUBLIC_SECTION", "ADMIN_SECTION")

Перед использованием своего кода необходимо провести проверку подключения методами класса CPullOptions.

Далее в работе можно использовать классы АПИ:

Серверная часть (PHP)
CPullStack Отправка данных.
CPullWatch Отправка данных подписанным пользователям.
CPushManager Отправка пуш уведомления.

JS методы

Клиентская часть (JS)
Событие BX.addCustomEvent "Ловушка" для команд Push & Pull.
BX.PULL.extendWatch Продление подписки.

Пример

Код для работы с выше описанными методами PHP

BX.addCustomEvent("onPullEvent", function(module_id,command,params) {
    if (module_id == "test" && command == 'check')
    {
        console.log('Work!');
    }
});

Мы подписываемся на событие получение команд (onPullEvent), в функции получаем module_id, command, params которые мы указали при отправке команды из PHP, обрабатываем свои команды с учетом вашей логики.

Пример компонента, который работает с самым сложным методом подписок BX.PULL.extendWatch.




9
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии