Тема: Возможность организации COMET сервера
В списке изменений увидел "Добавлена возможность организации COMET сервера"
Можете подробнее про данную возможность рассказать?
Форум ReadyScript Вопросы по разработке модулей и API системы Возможность организации COMET сервера
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
В списке изменений увидел "Добавлена возможность организации 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 - данные
});
Спасибо за ответ! А тоже самое для фронтэнда возможно реализовать? Для построения решений, аналогичных моему модулю с оповещениями о товаре в корзине
Учитывая специфику работы данного механизма, не думаю что на любом хостинге можно сделать это для клиентов. Админов все же обычно не много, а тут должно висеть соединение постоянно с каждым.
Теоретически наши классы то можно задействовать и в клиентской части с минимальными правками, но большинство хостингов не дадут держать так много долгих php соединений.
Вебсокеты не совсем подходят, так как на шаред хостингах их не развернешь.
Так ведь и продукт ваш для шареда не очень подходит.
Вернее, как - задачи, которые можно решить на RS, нельзя уже решить на шареде.
Простой корпсайт с каталогом в 400 позиций можно сделать на шареде, а вот всё остальное - выше.
Так что, про сокеты не забывайте :]
Про сокеты помним ) , но сейчас большинство пользователей на шаред-хостингах прекрасно работают.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум ReadyScript Вопросы по разработке модулей и API системы Возможность организации COMET сервера