У меня простой вопрос
на основе этой ссылки
WebRTC (веб-коммуникации в реальном времени) — это отраслевая попытка улучшить модель просмотра веб-страниц. Это позволяет браузерам напрямую обмениваться мультимедиа в реальном времени с другими браузерами в одноранговой сети через безопасный доступ к периферийным устройствам ввода, таким как веб-камеры и микрофоны.
Традиционная веб-архитектура основана на парадигме клиент-сервер. где клиент отправляет HTTP-запрос на сервер и получает ответ содержащий запрашиваемую информацию. Напротив, WebRTC позволяет обмен данными между N узлами. В ходе этого обмена сверстники разговаривают друг с другом. другой без сервера посередине.
и я думал, что webRTC такой, но потом Я видел этот урок
Он создает сервер Node.js и даже использует WebSocket в своем приложении. Меня смущает определение, что технология WebRTC должна работать только с одноранговыми узлами, но сейчас в этом руководстве используется сервер. Я хочу знать, в чем именно разница между связью клиент-сервер в реальном времени и WebRTC.
Медиатрафик WebRTC может быть одноранговым: видео- и аудиотрафик может идти напрямую от отправителя к получателю.
Однако для связи двум узлам необходимо обменяться некоторой информацией, такой как их IP-адреса («кандидаты ICE») и их криптографические ключи. Как они обмениваются этой информацией, зависит от приложения, но обычное решение — использовать для этого сервер, называемый «сервером сигнализации».
signalling server
/ \
/ \ ICE candidates and
/ \ cryptographic keys
/ media \
A ============== B
Есть некоторые исключения из вышеперечисленного. Во-первых, если прямая связь невозможна (например, из-за неправильно настроенного брандмауэра), WebRTC вернется к маршрутизации медиатрафика через сервер «TURN». Во-вторых, WebRTC — довольно гибкий протокол, и многие приложения используют его с медиа-сервером («SFU»), и в этом случае весь медиа-трафик проходит через сервер.
сервер нужен только для первоначального соединения между сторонами, чтобы согласовать для них безопасный канал, и для этого вы можете использовать AJAX, например