Теперь добавление совместной работы в режиме реального времени на веб-сайт требует очень небольшой дополнительной работы, и вам даже не нужно разрабатывать свое приложение, чтобы использовать его. Вы можете просто добавить его в существующее приложение и ожидать, что все будет работать, когда к нему обращаются одновременно несколько пользователей.
Называть TogetherJS библиотекой, вероятно, было бы несправедливо. Это больше похоже на приложение с открытым исходным кодом, которое вы можете просто перетащить на веб-страницу или приложения, чтобы обеспечить мгновенную совместную работу. В основном все, что вам нужно сделать, это добавить:
а затем запустите его с помощью
TogetherJS (это);
Когда пользователь активирует TogetherJS, ему предоставляется URL-адрес, который он может отправить другому пользователю. Когда другой пользователь открывает ссылку, они оба видят одну и ту же страницу и могут с ней взаимодействовать.
Помимо того, что оба пользователя могут изменять страницу, они также могут общаться друг с другом с помощью текстового поля и разговаривать с помощью аудиопотока. Оба пользователя видят курсоры мыши друг друга, и содержимое страницы обновляется в реальном времени.
Вы можете увидеть это в действии на следующем видео:
Как это работает?
Во многих отчетах о TogetherJS утверждается, что он основан на WebRTC, но на самом деле это не суть подхода. Фактически WebRTC используется только для аудиосвязи. Остальная часть системы зависит от использования хаб-сервера для синхронизации состояний двух браузеров. Это позволяет использовать WebSockets для передачи сообщений о статусе каждого браузера. По умолчанию используется сервер, предоставленный Mozilla — да, это действительно не одноранговая система.
Если вас беспокоит безопасность или производительность, вы можете настроить и использовать собственный концентратор. Это приложение Node.js, доступное для загрузки. Настройка сервера кажется простой, но вам понадобится собственный сертификат, если вы планируете использовать безопасность SSL /
TogetherJS позволяет настраивать множество различных аспектов работы, включая URL-адрес хаб-сервера. Хаб-сервер предоставляет URL-адрес, к которому подключаются все пользователи, и это, по сути, состояние сеанса.
Состояние поддерживается при работе напрямую с DOM. Это означает, что два пользователя могут не видеть один и тот же макет страницы — например, из-за разного разрешения экрана — но все синхронизируется. Другими словами, TogetherJS позволяет делиться с независимым разрешением. Это также означает, что он не требует сохранения состояния — это ваше приложение, которое должно разбираться так же, как и для одного пользователя.
У этого подхода есть некоторые недостатки. Например, два пользователя должны видеть одну и ту же веб-страницу, и любой динамический или сгенерированный контент должен быть одинаковым для них обоих. Другими словами, это не совместное использование экрана, когда оба пользователя видят одну и ту же страницу. В большинстве случаев это не должно быть проблемой, но вы должны знать об этом.
Большинство приложений TogetherJS должны иметь возможность получать то, что требуется, с помощью параметров конфигурации. Если вы хотите пойти дальше, вам нужно добавить обработчики событий и иметь дело с тем, что отправляется по каналу связи.
TogetherJS нужен современный браузер, который поддерживает WebSockets для его основных функций и WebRTC для аудиочата. В документации говорится, что он работает в последних версиях Chrome и Firefox и может работать в IE10, но это не тестовая цель.
Это не революция безсерверных коммуникаций, которую обещает WebRTC, но это очень просто, очень мощно и очень полезно.