Перейти к содержанию

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

Push & Pull

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

Push-уведомления – это небольшие всплывающие окна, которые появляются на экране мобильного телефона или обычного компьютера и сообщают о важных событиях и обновлениях.

Подробнее ... курса Администратор.Модули.

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

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

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

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

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

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

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

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

PHP и JS

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

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)

JS методы

--- ---

Пример

Код для работы с выше описанными методами 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.