在同一网络中,视频通话效果很好。问题是在其他网络上调用计算机时,远程视频没有显示。在chrome上,我在控制台中没有任何错误,但是在firefox控制台上,我正在“ICE Failure” 。
我使用Node JS来实现信令服务器和Google STUN服务器。
以下是即时通讯使用的事件顺序:
用户A:
用户B:
注意:
1.在创建要约之前,在双方创建对等连接和 onicecandidate 处理程序。
2.这样做是为了确保在创建要约之前,两边都准备好 Onicecandiate 处理程序,并且不丢失 ICE候选人。
上述事件顺序有什么问题吗?
最佳答案
我们可以按照以下顺序调试和解决问题:
3.如果仍在交换STUN候选者,则您将面临此问题,这意味着不同网络中的一个候选者位于对称防火墙之后。在这种情况下,需要配置TURN服务器。您可以使用任何免费的TURN服务器,部署我们自己的TS或使用某些付费服务。请确保您已按照防火墙配置TURN服务器。大多数情况下,TURN服务器不是免费提供的。
4.如果仍然面临问题,这意味着防火墙存在问题,则防火墙中未打开所需的STUN,TURN服务器端口或协商端口。在这种情况下,请在开放网络中测试您的设置。如果可行,则必须打开这些端口/IP并相应地配置防火墙。
PS:您可能不会在chrome控制台中找到任何日志,但是在chrome://webrtc-internals中,您会发现非常丰富的信息,这些信息对于您调试和解决问题很有用。