У меня есть следующий сценарий:
- два участника webrtc, работающие на одной и той же машине с тем же IP-адресом
- Узел A делает предложение узлу B
- Узел Bделает Ответ одноранговому узлу A
- Для обоих одноранговых узлов настроена маска newtork, чтобы разрешить только обратные петли
- Для обоих одноранговых устройств отключено шифрование (PeerConnectionFactory.Options.disableEncryption)
Peer B реализован мной без использования нативного WebRTC.Платформа WebRTC однорангового узла A распознает ответ однорангового узла B и отображает в журналах следующую информацию:
V/p2p_transport_channel.cc: (line 1732): Sorting 1 available connections
(line 1735): Conn[48117e00:0:Net[lo:127.0.0.x/8:Loopback:id=1]:D02Ge5rc:1:0:local:udp:127.0.0.x:52503->RriWKCXk:1:2122194687:prflx:udp:127.0.0.x:34007|CR-W|-|0|0|9114193830700924414|-]
Таким образом, кажется, что соединение установлено успешно.передача мультимедиа с узла B на узел A. работает нормально.
Однако узел B не получает пакеты udp от узла A. Я прослушиваю сокет и даже не получаю запросы на привязку Stun.,Обычно я вижу, что пакеты отправляются от узла A также в журналах узла A, однако пакеты не отправляются узлом A.
Что странно, когда я удаляю сетевую маску, узел B получает пакеты.Однако они отправляются с интерфейса Wi-Fi Peer A, а не интерфейса обратной связи.
Поэтому я подозреваю, что WebRTC не отправляет пакеты, если удаленный кандидат является адресом обратной связи (127.0.0.1)?Я читал в некоторых местах, что dtls вызывает проблемы с адресами обратной связи, однако, поскольку я отключил шифрование, это не должно быть проблемой ...
sdp для ответа кандидата выглядит следующим образом
a=candidate:1510613869 1 udp 2122063615 127.0.0.1 34007 typ host generation 0 network-id 1