В рамках работ по переходу клиентской части Push & Pull в мобильном приложении на нативный вызов, пришлось изменить формат отправляемых на сервер сообщений. (это то что вы отправляете через CPullStack::AddByUser, CPullWatch::addToStack )
Ранее мы кодировали команды к серверу с помощью нашей волшебной CUtil::PhpToJSObject() По не известным науке причинам (хвостов не найти), кодирование происходит не по стандартам JSON, из-за этого мы не можем нативными средствами анализировать содержимое пакетов и проводить над ними какие либо операции, а нам очень надо
В обновлении Push & Pull версии 18.0.0 мы переходим к кодированию через Bitrix\Main\Web\Json::encode
В связи с этим, ваш JS код может поймать несколько ошибок связанных с типизацией, а может и не поймать, нужно проверять
Например: вы отправляли следующий массив
Array(
"id" => 1234
)
Клиенту приходил JSON вот такого вида
{"id":"1234"}
ID пришел как строка, а значит вы могли на это полагаться и выполнить например поиск по ней вот так - id.indexOf('12') Начиная с обновления pull 18.0.0 такой код будет приводить к ошибке, нужно заменить его на id.toString().indexOf('12')
В следующем примере, вы можете увидеть разницу, отправляем массив:
Многие из вас уже используют виджет Открытых линий у себя на сайте, сегодня я расскажу как идентифицировать гостевые сессии в Онлайн-чате
Есть два варианта развития событий, пользователь авторизован на вашем сайте и не авторизован.
Для не авторизованных пользователей вчера мы выпустили обновление с формами Контактных данных (статья доступна пользователям партнерского портала p.bitrix24.ru, обновление пока доступно только для партнеров).
Для авторизованных пользователей у нас есть более интересное решение, которое не будет заставлять ваших пользователей повторно заполнять контактные данные
Что бы идентифицировать таких клиентов, мы выпустили 2 решения, для сайтов на 1С-Битрикс: управление сайтом и для сайтов на других системах.
1. Для БУСа, вам достаточно на страницу где подключен виджет, добавить компонент b24connector.openline.info (компонент модуля "Интеграция с Битрикс24'" b24connector) - он автоматически пробросит внутрь виджет все контактные данные клиента, так же вы можете настроить и дополнительно передаваемые данные.
2. Для сторонних систем (например ваш биллинг) вы можете воспользоваться Javascript кодом, который так же, нужно расположить на странице где подключен виджет.
Обратите внимание на hash - это специально поле, замена авторизации. Оно должно быть уникальным в рамках вашего Битрикс24, что бы не было пересечений.
Например: md5(USER_ID+_адрес_сайта_ + _секретный_код_) Данный код должен одновременно идентифицировать пользователя и быть не подбираемым с улицы.
Поле firstMessage не является обязательным, вы можете его не настраивать, тогда оператору будет отправлена ссылка страницы с которой клиент начал обращение.
Мы активно занимаемся развитием нашей бот платформы и верим что скоро появится полноценная документация, но пока её нет, вы можете посмотреть на черновики.
Хочу рассказать вам как сделать ваши уведомления и сообщения богаче используя новый инструмент "Вложения"
Я несколько раз анонсировал эту возможность и скорее всего вы уже начали думать о том, как использовать её у себя в модулях Сейчас я вам расскажу как это сделать, на самом деле это достаточно просто (приготовьтесь, пост длинный с картинками)
Пару дней назад мы выпустили гору обновлений для коробки, среди них обновления Веб-мессенджера 16.0.0, оно уже доступно для загрузки и ознакомления.
Про обновление для пользователей мы подробно рассказали в презентации и в блоге Битрикс24, а теперь я расскажу какие новинки уже есть и какие ждут разработчиков в декабре-январе
Браузер Google Chrome с версии 47 отключает WebRTC на всех сайтах, кто не использует протокол HTTPS. Это означает что для всех коробочных версий Битрикс24, у кого не стоит HTTPS сертификат, перестанет работать телефония и внутренние звонки.
Для решения проблемы, необходимо будет приобрести и настроить HTTPS сертификат для сайта, либо использовать Mozilla Firefox (но тоже временное решение, т.к. Firefox скорее всего тоже включит такое ограничение в следующем году)
Для пользователей это будет выглядеть, как "Невозможно получить доступ к веб-камере или микрофону". Для клиентов Битрикс24 облачной версии - это предупреждение не актуально, так как порталы изначально работают по протоколу HTTPS.
В последнее время партнеры из разных компаний начали спрашивать, как же запустить Push & Pull для гостей. Конечно никак! В принципе можно, но необходимо реализовать свою логику фиксации сессии за гостем (нужен какой уникальный числовой идентификатор).
Для чего это нужно, для того что бы гостю выдавался один и тот же адрес канала и вы могли отправлять ему персонализированные команды.
С нашей стороны пришлось немного доработать модуль для такого режима, и для того что бы это разработало у вас, вам необходимо обновление модуля Push & Pull 15.5.1.
Что потребуется с вашей стороны?
Вам необходимо реализовать методы определение гостя, присвоение ему внутреннего числового идентификатора, допустим этот идентификатор у вас определился как 1. Для того что бы не путать авторизованных и не авторизованных пользователей, передавать в модуль Push & Pull его нужно со знаком минус.
Метод который определяет идентификатор, нужно реализовать и выполнить в прологе, до момента инициализации Push & Pull, для этого вам необходимо будет зарегистрировать зависимость:
Внутри этого файла у вас будет ваша логика определения и указание константы PULL_USER_ID которая будет использоваться для корректного формирования канала гостю (обратите внимание, для каждого гостя должен быть свой идентификатор)
$guestId = -1; // эту цифру должна вернуть ваша функция, определения идентификатора для гостя
define('PULL_USER_ID', $guestId);
Для удобства отладки, вы можете воспользоваться следующими JS командами:
BX.PULL.capturePullEvent();
Данная команда логирует все команды приходящие для данного пользователя;
BX.PULL.getDebugInfo();
Данная команда отображает состояние подключение к серверам P&P;
Оптимизация кол-ва запросов к серверу
В последних версиях P&P появилась настройка путей, позволяющая для современных браузеров ходить напрямую на сервер очередей (отдельный адрес. Это было реализовано для крупных проектов, у которых такой сервис находится на отдельном сервере.
До появления этой опции, если у вас сервер сайта и сервер очередей находились на разных серверах, то вам приходилось делать проксирование запросов (запрос приходилось отправлять на сервер сайта, так как старые браузеры не поддерживают прямые запросы AJAX на другие домены и уже от туда перенаправлять на сервер очередей через внутренние правила), это создавало нагрузку и лишний трафик. Слава богу число пользователей с современными браузерами с каждым днем все больше и больше, (более 80% по разным оценкам), а это значит для 80% вашего трафика на сервер очередей можно экономить!
Теперь все новые браузеры стучатся напрямую на сервера, но из-за особенности работы нашей реализации JS с сервером, им приходится делать дополнительно на каждое подключение OPTIONS запрос.
Для того что бы избавится от него, вам необходимо проверить конфигурационные файлы сервера. Откройте файл bx/conf/im_subscrider.conf, в описании локейшена location ^~ /bitrix/sub { проверьте есть ли у вас такое условие, если нет - добавьте:
if ($arg_time) {
push_stream_last_received_message_time "$arg_time";
}
После этого, при подключении, все пользователи будут генерировать к серверу на один запрос меньше (это произойдет не сразу, а по мере обновления JS кода у клиента, перезапуска страницы).
Добрый день коллеги, данная статья расскажет вам как и зачем работать с модулем Push & Pull. Модуль доступен в редакциях БУС Эксперт и выше, а так же во всех редакциях Корпоративного портала. Что за модуль и зачем он нужен
Первым кто начал его использовать был модуль "Веб-мессенджер", благодаря модулю P&P появилась возможность реализовать действительно мгновенные сообщения, без необходимости ждать 60 секунд между опросами сервера. В последней версии КП 14 (и Битрикс24) использование модуля стало практически повсеместным. Его использует "Мобильное приложение", модули "Голосования и опросы", "Главный модуль" (для живых счетчиков), "Блоги" (для живых комментариев) и другие. Оперативность получения актуальной информации и скорость реакции на неё, сильно изменило работу с порталом и это заслуга модуля "Push & Pull".
Модуль "Push & Pull" работает в двух режимах: - постоянное подключение к специальному серверу "Сервер очередей" - в режиме опроса сервера (60-20-10);
Первый режим рекомендуемый, от него вы получите настоящую интерактивность, но от вас потребуется настроить сервер очередей или взять готовую сконфигурированную виртуальную машину.
Второй режим используется, когда по каким то причинам невозможно использовать первый, в таком случае модуль будет каждые 60 секунд стучатся на сервер и проверять есть ли данные, если есть то следующий хит будет через 10 секунд, если данных больше нет хит будет через 20 секунд, потом каждые 60 секунд, тем самым будет создан эффект интерактивности.
Самое главное, не смотря на то, какой способ выберет клиент на своем сайте (сервер очередей или опрос сервера) работа с модулем останется одинаковой (кроме работы с общим каналом). Само API делится на PHP и JS часть, ниже опишу ключевые методы для работы с ним.
Мы сделали единый центр управления смайлами в "Главном модуле, версии 12.5.7".
Теперь, что бы использовать смайлы в своем модуле, нет необходимости писать собственный класс управления смайлами, создавать административные страницы, копировать из модуля в модуль картинки и обучать парсер сообщений.
Пару дней назад, Антон Долганин поднял эту тему в Академия 1С-Битрикс выпускников Хочу поделится способом, который мы используем при разработке.
Иногда для правильной работы JS требуется не только его код, но еще и файл стилей CSS, языковой файл и иногда загрузка других встроенных библиотек, все это реализует наша библиотека JS Core.
JS Core так же отслеживает зависимости от других библиотек, в случае необходимости подключая их, при этом исключая дублирование подключений. Данный метод полностью совместим с новой функцией ядра - "Оптимизация CSS и JS" которая вышла в обновлении main 12.0.7.
Регистрация вашего скрипта в JS Core, например в include.php модуля:
Ключи: js - путь до вашего JS скрипта css - путь до вашего CSS файла (не обязательный параметр) lang - путь до вашего языкового файла с учетом языковой константы (не обязательный параметр) rel - зависимости, здесь перечисляются какие библиотеки нужны например jquery или json, список можно посмотреть в файле /bitrix/modules/main/jscore.php (не обязательный параметр) skip_core - если у вас нет зависимостей и bitrix core вам не нужен, смело ставьте true (не обязательный параметр)
Инициализация вашего скрипта, в компоненте:
<?CJSCore::Init(array('your_js'));?>
При отработке компонента, будут подключены все необходимые файлы и зависимости.
Языковые файлы, составляются в привычном для битрикс-компонентов формате:
В КП и БУС начиная с версии 11.5, в редакциях включающих в себя социальную сеть появился новый модуль "Веб-мессенджер". Перед тем как выпустить всем, модуль прошел боевое крещение на нашем "Социальном интранете", собрав аж 8 обновлений
Пару дней назад вышло очередное обновление модуля «CRM». Обновление получилось объёмным, было закрыто 17 тикетов и внедрены почти все пожелания высказанные на форуме. Остановлюсь на особо значимых изменениях подробнее.