2016-12-09 3 views
1

Является ли идентификатор RTCDataChannels глобальным или специфичным для RTCPeerConnection?Является ли идентификатор RTCDataChannels глобальным или специфичным для RTCPeerConnection?

Например, если у меня есть p1 и p2, два одноранговых соединения, могу ли я создать канал данных на каждом, у которого есть id 7, или они будут сталкиваться?

Я пробовал это на Chrome с помощью прокладки webrtc, похоже, что идентификаторы относятся к RTCPeerConnection. Я не могу, однако, найти, где в спецификации это указано ...

Кто-нибудь знает?

ответ

0

Идентификатор поступает из транспортного уровня соединения. Это число от 0 до 65534 и уникально только для этого соединения (пара сообщений RTCPeerConnections).

См «поток Идентификатор» в разделе 3 https://www.ietf.org/id/draft-ietf-rtcweb-data-protocol-09.txt

Там обходной путь, однако. Вы разрешили задать свой собственный идентификатор с createDataChannel:

let channel = createDataChannel("foo", { id: 3 }); 

Таким образом, вы могли бы использовать LocalStorage, чтобы сохранить их уникальными для вашего приложения (до точки, конечно), если это то, что вы хотите.

Другими словами, вам не нужно беспокоиться о столкновениях между RTCPeerConnections, если они не являются двумя концами одного и того же соединения.

Смежные вопросы