Вы установили ледовые серверы, особенно сервер поворотов (или, по крайней мере, сервер оглушения)? Вы должны передать объект конфигурации в RTCPeerConnection-Constructor , который содержит поле iceServers: [{urls: 'stun:some.stun.server.address},...]
Поскольку мне кажется, что процесс сбора льда проверяет сгенерированные адреса кандидатов:
- Он проверяет локальный адрес (например, 127.0.0.1), но, поскольку он не работает на том же компьютере, происходит сбой.
- Он проверяет IP-адрес ОС (например, 192.168.178.13), и этоработают, если 2 компьютера находятся в одной сети, но в разных сетях, эти локальные IP-адреса не помогают ...
- Он отправляет запрос STUN, спрашивая внешний сервер, с какого IP-адреса поступил этот запрос. Адрес другой, так как NAT делает свою работу. Затем он попытается соединиться с этим рефлексивным адресом. Для многих NAT это все равно не будет работать, поскольку входящие запросы без предшествующего исходящего соединения с IP будут запрещены
- Он отправляет запрос TURN и маршрутизирует весь разговор через сервер ретрансляции. Это должно работать почти в любом случае
Если вы не установили серверы STUN и TURN в своей конфигурации, шаг 3 и for не будут испробованы, поскольку не будет никакого рефлексивного адреса от сервера stunи не включай сервер ретрансляции адреса. Поэтому сбор льда может закончиться на шаге 2 (и будет завершен), но соединение не будет, так как 1. и 2. произойдет сбой в разных сетях