Сигнальні і транспортні протоколи WebRTC: зриваємо покрови

Наша платформа VoxImplant складається з декількох частин: хмара, API, SDK для різних платформ. SDK для браузера підключається до хмари по WebSocket і дозволяє телефонувати (і приймати дзвінки) як іншим користувачам VoxImplant, так і на звичайні телефони. Раніше це працювало з допомогою flash, але в сучасних браузерах використовується спеціально створена для роботи з голосом і відео технологія WebRTC. Штука хороша, але досить складна у використанні: можливість peer-to-peer комунікацій-одна з ключових «фішок» технології, управляється повністю вручну. Щоб два браузера могли організувати голосової або відеочат один з одним, розробнику потрібно зібрати інформація про IP-адреси комп'ютерів, як передати цю інформацію між браузерами, запустити NAT Traversal і згодувати це все WebRTC. А якщо обійти NAT не вийшло, то ще й надати Relay-сервер для передачі даних.

Нещодавно ми знайшли на просторах інтернету цікаву статтю, яка розповідає технічні подробиці «передачі інформації» між браузерами. Адаптований для Хабра переклад – під катом.
Читати далі →