Реализация видеочата и CouchDB на базе стандартных технологий HTML5

На состоявшемся в Париже саммите IETF 83 представители проекта Mozilla продемонстрировали прототип web-приложения, позволяющего совершить видеозвонок между двумя web-браузерами, используя для этого только HTML5-технологии и JavaScript, без задействования внешних дополнений и плагинов.

Для организации прямого соединения между пользлвателями и обеспечения передачи видео и звука по сети в реальном времени задействован API WebRTC, продвигаемый компанией Google в рабочих группах организаций IETF и W3C в качестве стандарта для Web. Видео передаётся в сжатом при помощи кодека VP8 виде. В качестве браузера для экспериментов была задействована специальная сборка Firefox - alder, в которой ведётся работа по интеграции в браузер поддержка WebRTC. По словам разработчиков, о добавлении WebRTC в штатные выпуски Firefox пока говорить рано, так как обеспечение поддержки WebRTC ещё находится на ранней стадии, но радует то, что уже удалось подготовить работающий прототип.

Аутентификация участников видеочата была организована с использованием протокола BrowserID и сервиса идентификации Persona. Также было задействовано дополнение с рализацией SocialAPI, позволяющего организовать доступ к контенту различных социальных сетей и сервисов. В частности, на базе SocialAPI подготовлено простое демонстрационное приложение для отображения списка людей, осуществивших вход в сервис Persona.

Для вывода видео используется тег canvas, но также возможно использование и тега video. Для создания канала связи и получения дотупа к микрофону/web-камере были задействованы собственные варианты API, симулирующие HTML5 API PeerConnection и getUserMedia, находящиеся на стадии принятия стандарта в W3C . Тем не менее, активно ведётся работа по реализации стандартных API.

Дополнительно можно отметить анонс проекта PouchDB, в рамках которого создана реализация документ-ориентированной базы данных CouchDB, написанная на JavaScript и работающая внутри браузера. Для локального хранения данных задействован API IndexedDB, при этом модель хранения полностью повторяет CouchDB и обеспечивает средства разрешения конфликтов. PouchDB совместим с CouchDB на уровне API для хранения и выборки данных, поддерживает репликацию данных с другими системами CouchDB.

©  OpenNet