Разработчики из Mozilla Labs начали тестирование нового сервиса, позволяющего легко интегрировать на любой сайт средства для организации совместной работы и взаимодействия пользователей в режиме реального времени. Подключив всего один JavaScript-модуль любой сайт можно превратить в полноценную платформу для совместной работы и общения. Код TowTruck распространяется под лицензией Mozilla Public License 2.0.
Для установки TowTruck на сайт следует подключить скрипт "https://towtruck.mozillalabs.com/towtruck.js" и добавить в любое место на сайте кнопку, при нажатии на которую любой посетитель может сформировать ссылку для отправки другим людям приглашения на включение режима совместного доступа. При переходе по подобной ссылке, создатель ссылки должен подтвердить подключения нового пользователя, после чего подключившиеся к одному сеансу пользователи могут напрямую общаться в чате между собой, вместе синхронно редактировать текст в формах, совместно просматривать контент, отмечая интересные позиции видимыми другим участникам сеанса метками и снабжая их комментариями.
Для каждого пользователя отображается свой курсор и видны курсоры других участников, которые специально помечены для наглядности. При этом каждый пользователь полностью контролирует работу с открытой в его браузере страницей, например, прокрутка в его окне никак не отражается в окнах других связанных с данным сеансом пользователей. Но все действия по редактированию и пометке текста сразу становятся видны всем участникам. При переходе одного участника по ссылке другим выдаётся уведомление с предложением также перейти по ссылке. В любой момент пользователи могут обмениваться между собой сообщениями. В настоящее время поддерживается только текстовый чат, но в ближайшее время обещают добавить поддержку видеочата и голосового общения. Попробовать систему в действии можно на специально подготовленной демонстрационной странице.
Взаимодействие клиентов ведётся при помощи WebRTC и WebSocket. WebRTC позволяет организовать прямое соединение клиентских браузеров в режиме P2P без привлечения внешних серверов и плагинов. Тем не менее поддержка необходимого для таких соединений объекта RTCPeerConnection пока не реализована повсеместно, поэтому для работы TowTruck задействован небольшой сервер, занимающийся координацией взаимодействия клиентов. Данный серверный компонент может быть запущен как на сервере владельца сайта, так может быть использован и публично доступный сервис Mozilla.