Дата последнего изменения: 13.11.2023
Запустить Push & Pull для гостей можно, но необходимо реализовать свою логику фиксации сессии за гостем. Для этого необходим уникальный числовой идентификатор: без него невозможно выдать гостю один и тот же адрес канала и невозможно отправлять ему персонализированные команды. С версии Push & Pull 15.5.1 такая возможность появилась.
Для реализации функционала разработчику необходимо реализовать методы определения гостя, присвоение ему внутреннего числового идентификатора. Допустим этот идентификатор у вас определился как 1. Чтобы не путать авторизованных и не авторизованных пользователей, передавать этот идентификатор в модуль Push & Pull его нужно со знаком минус:
$guestId = -1; CModule::IncludeModule('pull'); CPullStack::AddByUser($guestId, Array( 'module_id' => 'test', 'command' => 'check', 'params' => Array(), ));
Метод который определяет идентификатор, нужно реализовать и выполнить в прологе, до момента инициализации Push & Pull. Для этого необходимо будет зарегистрировать зависимость:
RegisterModuleDependences("main", "OnProlog", "main", "", "", 2, "local/scripts/pull_hit.php");
Внутри указанного файла должна быть ваша логика определения и указание константы PULL_USER_ID
которая будет использоваться для корректного формирования канала гостю. Для каждого гостя должен быть свой идентификатор!
$guestId = -1; // эту цифру должна вернуть ваша функция, определения идентификатора для гостя define('PULL_USER_ID', $guestId);
После этого ваши гости могут получать Push & Pull команды наравне с авторизованными.
Для удобства отладки, вы можете воспользоваться следующими JS командами:
|