Как сделать трансляцию html-страницы клиенту?

Нам с коллегой поручили интересную задачку — надо сделать инструмент показа веб-страницы клиенту. То есть некий аналог шаринга экрана в Скайпе, но без видео и с возможностью управления страницей с обеих сторон. Содержимое страницы неизвестно, подгружается в iframe. Если как передать страницу понятно (использовать Socket.io), то как передавать пользовательские события и их статус — не очень. Может быть есть какие-то идеи?
  • Вопрос задан
  • 439 просмотров
Пригласить эксперта
Ответы на вопрос 2
riky
@riky
Laravel
ставить всевозможные глобальные эвент листенеры
$(document).on('click' ...);
и тд onscroll, onkey down/up/press, on mouse down/up.
в листенере берем XPath путь элемента target на котором произошло событие.
отправляем тип события и путь и вспомогательные параметры через вебсокеты.
на второй стороне через сокеты слушаем эти события.
ищем элемент по xpath и эмулируем это событие.

но задача совсем не так проста как кажется, если делать чтото по такому принципу - универсально - то будет много багов. например оба юзера кликают по разным кнопкам и открываются 2 диалога, но в системе может быть открыт только один модал - в итоге у каждого будет открыт свой диалог.

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

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

скорее всего ваш босс просто недооценил задачу, и универсальное решение будет для него очень дорогим....
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы