Тема: Возможность организации COMET сервера

В списке изменений увидел "Добавлена возможность организации COMET сервера"
Можете подробнее про данную возможность рассказать?

2

Re: Возможность организации COMET сервера

Хотели чуть позже на этот счет новость с подробностями описать.

Если коротко, то готовим базовые функции, чтобы можно было сделать интеграцию с телефонией в админке.
Для этого нужно мгновенно передавать события (которые будут приходить через Вебхуки от телефонии) из PHP администратору.

Всего бывает 2 проверенных временем варианта - WebSocket и LongPolling запросы.
Вебсокеты не совсем подходят, так как на шаред хостингах их не развернешь.
Соответственно остался второй вариант.

Модуль, который захочет передавать информацию, должен будет включить LongPolling нужному админку, внутри события start.

\Main\Model\Comet\LongPolling::getInstance()->enable();

Затем при возникновении события, в PHP можно вызвать:

$data = ['param1' => 'value1']; //Любые данные
$user_id = 123; //ID админа, кому сообщение 
$expire = 20; //Максимальная актуальность сообщения в секундах, если получатель его не получил за это время, то оно удаляется.
$event_name = 'test'; //Произвольное имя события

\Main\Model\Comet\LongPolling::getInstance()->pushEvent($event_name, $data, $user_id, $expire)

При этом как только в PHP будет вызван pushEvent, в JS сразу будет срабатывать событие rs-event-{$event_name} на элементе body

То есть его мгновенно можно перехватывать:

$('body').on('rs-event-test', function(e, data) {
      //data - данные
});

Повысить оценку Понизить оценку

Re: Возможность организации COMET сервера

Спасибо за ответ! А тоже самое для фронтэнда возможно реализовать? Для построения решений, аналогичных моему модулю с оповещениями о товаре в корзине

4

Re: Возможность организации COMET сервера

Учитывая специфику работы данного механизма, не думаю что на любом хостинге можно сделать это для клиентов. Админов все же обычно не много, а тут должно висеть соединение постоянно с каждым.

Теоретически наши классы то можно задействовать и в клиентской части с минимальными правками, но большинство хостингов не дадут держать так много долгих php соединений.

Повысить оценку Понизить оценку

5

Re: Возможность организации COMET сервера

admin пишет:

Вебсокеты не совсем подходят, так как на шаред хостингах их не развернешь.

Так ведь и продукт ваш для шареда не очень подходит.
Вернее, как - задачи, которые можно решить на RS, нельзя уже решить на шареде.
Простой корпсайт с каталогом в 400 позиций можно сделать на шареде, а вот всё остальное - выше.

Так что, про сокеты не забывайте :]

6

Re: Возможность организации COMET сервера

Про сокеты помним ) , но сейчас большинство пользователей на шаред-хостингах прекрасно работают.

Повысить оценку Понизить оценку