Я пытаюсь добавить функцию аудио / видео чата с помощью WebRT C в существующее приложение текстового чата. Участники комнаты чата уже общаются, но когда они решают, что им нужно аудио / видео, они нажимают кнопку, чтобы начать аудио / видео. Какой бы клиент ни нажимал кнопку, я вызываю myPeerConnection.createOffer().then(function(offer){setLocalDescription(offer)}
, а затем отправляю offer
(JSON .stringified) на сервер вместе с clientID. Через X
секунд я отключаю кнопку для присоединения к аудио / видео чату, отправляю уведомление на сервер, чтобы разослать все offers
участникам. На этом этапе все клиенты, желающие присоединиться к аудио / видеочату, имеют полный набор SDP от всех остальных пиров.
Мой вопрос: нужно ли мне отправлять ответы на каждое предложение от каждого клиента? Насколько я понимаю, SDP описывает возможности клиента для обработки аудио / видео. Могу ли я использовать предложения SDP от других для setRemoteDescription(SDP)
? Все примеры, руководства, вопросы и сообщения, с которыми я сталкивался, используют парадигму предложения / ответа, и ни один из них не говорит о том, в чем разница между предложением и ответом. Любая информация или указатели приветствуются.
Вот сегмент кода jsFiddle , упрощенный из моего кода. Пожалуйста, взгляните на вывод консоли, который не показывает ничего, кроме мультимедийных возможностей. Вся информация ICE и сетевая информация, которая может различать guish SDP, поступает после обмена этим предложением SDP и ответом, так что это еще не часть этого обмена предложениями (и ответами), осуществляемого через канал сигнализации.
PS: Строго говоря, в моем сценарии нет инициатора или отправителя, запускающего канал. Все участники равны. Их невозможно определить или упорядочить. Когда возможности и сетевая информация обмениваются должным образом, они запускают аудио / видеочат.