Дата последнего изменения: 17.04.2024
Детально о работе и настройке модуля смотрите в
соответствующей главе
Push-уведомления – это небольшие всплывающие окна, которые появляются на экране мобильного телефона или обычного компьютера и сообщают о важных событиях и обновлениях.
Подробнее ...
курса Администратор.Модули.
Модуль Push & Pull работает в двух режимах:
Первый режим рекомендуемый, от него вы получите настоящую интерактивность, но от вас потребуется настроить Сервер очередей или взять готовую сконфигурированную виртуальную машину.
Второй режим используется когда по каким-то причинам невозможно использовать первый. В таком случае модуль будет каждые 60 секунд обращаться на сервер и проверять, есть ли данные. Если есть, то следующий хит будет через 10 секунд. Если данных больше нет, то хит будет сначала через 20 секунд, а потом через каждые 60 секунд. Тем самым будет создан эффект интерактивности.
Какой способ выберет клиент на своем сайте (сервер очередей или опрос сервера), работа с модулем останется одинаковой (кроме работы с общим каналом).
Само API делится на 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
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.