Я кодирую простое приложение для чата и хочу добавить общий холст для рисования в свое приложение, которое использует канал данных для отправки точек холста между ними. Но это необязательная спецификация, поэтому я не хочу открывать канал данных каждый раз, когда открываю чат. Если я открываю канал данных после установления однорангового соединения (после предложения), я не могу отправлять данные по каналу данных. В противном случае я могу отправить (я получил этот пункт отсюда: https://stackoverflow.com/a/35141500/5663292) . Так почему же я должен открывать канал данных перед предложением однорангового подключения?
Почему я должен открывать канал данных перед отправкой предложения однорангового соединения?
Ответы (1)
Предложение/ответ SDP — это то, что определяет, как именно ваши коллеги хотят общаться. Предложение включает фактический способ подключения (IP/порт/реле TURN) и какие потоки, кодеки и каналы вы хотите использовать. Ответ сужает это/подтверждает, что может принять другой узел.
Если вы хотите что-то добавить к общению, например дополнительный медиапоток или канал данных, вам нужно сообщить об этом другому узлу, иначе он ничего не ожидает/не может обработать .
Поток всегда:
- подготовьте все, что вы хотите отправить удаленному узлу на вашем локальном
RTCPeerConnection
- создать локальное описание
- отправить его удаленному узлу
- дождитесь ответа удаленного узла
- включить ответ пульта (
setRemoteDescription
)
Только тогда оба партнера находятся на одной странице и могут действительно разговаривать друг с другом. Повторяйте эту процедуру всякий раз, когда это необходимо, то есть всякий раз, когда вы существенно меняете что-либо в том, что отправляете.
person
deceze♦
schedule
10.08.2016