278  /  380
Справочник

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

Просмотров: 31472
Дата последнего изменения: 13.11.2023
Роберт Басыров
Сложность урока:
2 уровень - несложные понятия и действия, но не расслабляйтесь.
1
2
3
4
5
Недоступно в лицензиях:
Старт, Стандарт

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)
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.




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

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