As much as it is said about WebRTC being peer to peer, there are some lesser known facts. Peer to peer is not always possible due to the inconsistency of the internet architecture, most prominently, the symmetric NATs (Network address translators), which is normally the case with mobile networks and some 'badly behaved' networks.
For most other networks, with WebRTC, you do not need to send data through your server, as it will connect peer to peer by using STUN protocol to know public socket details and hole punching to actually transmit data. You need the server to setup the signalling part as it is not a part of WebRTC. For signalling, you may use protocols like SIP, websockets etc.
Сказав это, в качестве отказоустойчивого механизма, когда p2p невозможен, подход, который вы можете использовать, заключается в маршрутизации трафика через ваш сервер. Хорошо, что WebRTC обеспечивает поддержку этого подхода с использованием TURN-серверов. ICE используется для определения наилучшего сценария (возможность p2p с использованием STUN или маршрутизация данных через сервер TURN). Следует отметить, что последний не является одноранговым, и для маршрутизации данных через сервер TURN требуется сервер TURN с высокой пропускной способностью, что влечет за собой непомерные затраты.
Теперь позвольте мне рассмотреть некоторые неверные предположения в ваших пунктах:
1. Вы можете справиться с этим, как вы заявили.
2. Этот шаг будет выполнен сервером TURN. . Внутренне веб-сокеты не используются WebRTC. Он использует SRTP (RTP через SSL) на прикладном уровне и TCP или UDP (в зависимости от обхода брандмауэра и требований надежности). Таким образом, веб-сокеты невозможны с WebRTC. Это совершенно другой подход.
3. То же, что и в пункте 2.
4. Обычно преобразование "на лету" не выполняется и не рекомендуется (задержка в преобразовании будет уберите функцию реального времени в окно). Любое такое преобразование должно выполняться на шаге 1.
Перед началом сеанса SDP (протокол описания сеанса) передает кодеки для аудио и видео обоим клиентам на этапе передачи сигналов.
5 , Еще раз следует отметить, что после инициализации сеанса, будь то p2p или через сервер TURN, данные должны
поступать непрерывно к обоим клиентам. Это суть WebRTC.
Если вам нужно что-то еще, попробуйте веб-сокеты. Ему не нужно ничего, кроме поддержки веб-сокетов на стороне клиента и сервера. Он использует всю архитектуру стека протоколов TCP-IP-HTTP, за исключением того, что он заменяет HTTP веб-сокетами на прикладном уровне с запросом на обновление на сервере. Это обеспечивает двунаправленный поток данных от сервера и клиентов, и у вас больше свободы для вычислений с данными.
Вероятен случай, когда вы можете использовать веб-сокеты для передачи сигналов перед инициированием сеанса WebRTC между клиентами.
P.S. Из-за меньшей репутации я не могу размещать более 2 ссылок. Пожалуйста, используйте википедию для ссылки на непонятные вам термины.
person
GulshanZealous
schedule
18.12.2016