Можно ли повторно использовать большие двоичные объекты WebRTC SDP между одноранговыми узлами?

Я пытаюсь использовать WebRTC для чисто децентрализованной и одноранговой связи. Я пытаюсь построить наложенную сеть P2P, в которой узлы обмениваются данными о других узлах, чтобы они могли подключиться к ним.

Если я обмениваюсь двоичными объектами SDP (объектами описания сеанса) между узлами, можно ли их использовать повторно в том смысле, что я мог установить соединение с узлом, просто используя этот blob и кандидата ICE?


person liamzebedee    schedule 05.07.2013    source источник


Ответы (1)


Обычно нет: вам нужно предложение от источника PeerConnection; Нет никакой гарантии, что blob-объект для ПК1 может использоваться с ПК2 (и, скорее всего, не может). Теперь, если они создали одноранговое соединение, выполнили CreateOffer и удерживают одноранговое соединение до тех пор, пока этот SDP не будет использован - тогда да, но это "не совсем" повторное использование ".

Возможно, вам это сойдет с рук, но различные вещи сейчас или в будущем могут сломать вас наполовину случайным образом. Лучшее решение - создать предложение от исходного узла и передать его по p2p-сети на целевой узел, который затем может передать ответ обратно. Если вы можете поддерживать ПК в режиме ожидания входящих транзакций, «источник» может использовать это для createAnswer и сократить одно путешествие по сети p2p. Вам нужно будет иметь дело с коллизиями (два узла пытаются использовать одно и то же предложение, которое было распределено по сети; в основном настройка сбоя / повтора должна обрабатывать это в тех редких случаях, когда это необходимо). Вы также можете включить в ответ предложение использовать на случай столкновения.

person jesup    schedule 08.07.2013
comment
Не могли бы вы обосновать свой аргумент, что blob-объект для ПК1 не может использоваться с ПК2? Не то чтобы я в вас сомневаюсь, я просто хотел бы знать, какой именно аспект этому препятствует. - person liamzebedee; 11.07.2013