我有一个非常简单的webRTC 1对1视频聊天应用程序。它在localhost上工作得很好,但我不能让它在不同的网络上工作。我尽可能多地在线阅读,但似乎没有任何工作。我怀疑我正在做一个无序的人,也许其他人可以发现它。
我的所有信号似乎都在工作(我有很多调试输出),所以我认为这不是问题。
我在github here上有所有代码,感兴趣的主要文件是videochat_manager
我以为我会总结一下我的过程:
等到房间里有两个人
来电者创建要约说明,并将其发送给回答者
回答者接受或排队提议直到准备回答
回答者已准备就绪(已建立对等连接)
回答者设置远程描述
answerer创建答案说明并将其发送给来电者
来电者设置远程说明
一旦两个同伴都设置了他们的描述,添加所有冰候选人(在队列中)
每当您收到对等远程流时,请添加
这就是我在非常高的水平上所做的事情。有什么明显的错误吗?
您可以找到demo app here。您可以在地址栏中更改房间
这是来电方面的四个候选人。还有两个我没有发布
对象{type:“candidate”,标签:0,id:“audio”,候选人: “a =候选人:2036686134 1 udp 2122260223 10.142.85.73 35544 typ host 第0代↵“}
对象{type:“candidate”,标签:1,id:“video”,候选人: “a =候选人:2036686134 1 udp 2122260223 10.142.85.73 35544 typ host 第0代↵“}
对象{type:“candidate”,标签:0,id:“audio”,候选人: “a =候选人:937861574 1 tcp 1518280447 10.142.85.73 0 typ host 第0代↵“}
对象{type:“candidate”,标签:1,id:“video”,候选人: “a =候选人:937861574 1 tcp 1518280447 10.142.85.73 0 typ host 第0代↵“}
...
答案 0 :(得分:2)
您的Turn和stun服务器似乎无法以获取适当的ICE候选公共IP地址的方式运行。
我使用您当前的ICE服务器测试了您的演示站点,并且未获得任何候选人的公共IP地址。尝试一些不同的服务器,看看是否能改善你的情况。