WebRTC vs WebSocket
Два способа связи с сервером, что они представляют и в чем разница?
WebRTC хочет разрешить связь в режиме реального времени между браузером и сервером и между браузерами. RTC означает Real-Time Communication. Веб-API, позволяющий использовать его в приложении, является объектом стандарта W3C, описывающего интерфейс объектов, участвующих в таком общении.
Понятно, что Microsoft хочет инвестировать в такого рода технологии (исходя из ее рекрутинга) и что она будет интегрирована в Skype - сервис бесплатной компьютерной телефонии, что и в случае Google Talk. Microsoft не реализовала WebRTC под тем предлогом, что используемый ею код VP8 может включать патенты. Недавнее соглашение (март 2013 года) с MPEG-LA, которое их удерживает, снимает это препятствие.
WebRTC поддерживается Google и поэтому использует кодек VP8 для видео. Google просит, чтобы этот кодек стал стандартом для WebRTC, а кодек Opus - звуковым. Оба без патентов. Они уже используются Skype, среди прочих кодеков.
В ноябре 2014 года рабочая группа RTCWEB решила, что и VP8, и H264 являются обязательными в WebRTC. Поэтому браузерам придется реализовать оба кодека.
Разница с WebSocket
WebSocket, который также определен IETF и W3C, является двусторонним протоколом связи между сервером и браузером. Стандарт W3C описывает API для его использования в приложении. WebRTC - двусторонний протокол реального времени для изображений и звука между браузерами или серверами.
В обоих случаях у тебя есть интерфейс, который может быть использован в JavaScript веб-мастерами, и внутренний протокол связи, который используется авторами браузеров. Второй протокол может использоваться первым.
WebRTC фактически описывает два API, один из которых веб-API, который описан в стандарте W3C, - это всё, что интересует вебмастеров. Другой API в C++, позволяющий подключаться к бэкэнд-мультимедийным сервисам, используется создателями браузеров и другого ПО.
Вот схема различных уровней интерфейса WebRTC:
Веб-API WebRTC является заменой Ajax как WebSocket заменяет объект XMLHttpRequest браузера. Однако мы находимся на совершенно другом уровне с двусторонним доступом в реальном времени, без ожидания сервера. Необходимо, чтобы система выдержала такую нагрузку, поэтому она предназначена для работы приложения на выделенном сервере. Но возможность распространения удаленных браузеров открывает новые горизонты для создателей приложений.
Объект RTC
В октябре 2014 года Microsoft объявила, что Internet Explorer поддержит ORTC. Это расширенный JavaScript API, основанный на RTC. Для Microsoft это было трудное решение, так как предоставление браузерам возможности общаться голосово и визуально делает бесполезными такие сервисы, как Skype (она выкупила его в 2011 году за $8,5 млрд), или хотя бы облегчает создание конкурентов, но это было необходимо для того, чтобы оставаться на уровне Firefox и Chrome.
Документы и код
- WebSocket vs. XMLHttpRequest.
- Ортц-узел. Реализация API на Node.js, поэтому для обмена локальными или локальными станциями с браузером.