WebRTC在不同网络中没有视频

4

非常抱歉我的英语不好。我有一个webRTC的问题。在同一网络下,我的应用程序能够正常运行,但在不同网络下出现了错误。

我使用的技术:

我在这个github上推送了我的代码:github/oihi08/webrtc

我不知道为什么不同网络下应用程序无法运行。我已经将它上传到服务器上,但是尝试了也没有解决问题。但在同一网络下却可以正常运行。

非常感谢您的帮助!


1
我们需要更多的信息。不同的网络是否可以接受连接(防火墙,NAT等),您是否使用正确设置和格式化的TURN服务器等。 - Maxime Marchand
你的消息套接字总是“localhost:8080”吗?远程客户端如何连接到你的服务器进行消息传递? - Benjamin Trent
我也在服务器上测试了套接字,但是没有起作用。我对这个主题不是很了解,正在学习WebRTC。 - oihi08
我需要在不同的网络中使用webRTC构建一个“应用程序”。我正在学习和研究,但是在不同的网络上我无法理解。 - oihi08
@oihi08 我知道这个问题很旧了,但是你解决了吗?我正在使用node,我设置了STUN和TURN服务器,但它仍然间歇性地工作,有时可以,有时不行!你能帮我吗? - Rafael Moni
1个回答

3
看起来你没有使用STUN / TURN服务器。创建两个设备之间的连接有几个步骤之一是选择一个或多个STUN / TURN服务器(例如“stun:stun.l.google.com:19302”)。即使在一端或两端存在防火墙时,该服务器也将用于创建对等方之间的连接。
当您设置一个或多个STUN / TURN服务器时,您将看到开始生成ice候选项。每次生成ice候选项时都会调用回调函数peerConnection.onicecandidate。当库完成生成ice候选项时,它会再次调用回调,并将NULL作为参数传递,这标志着候选列表的结束。
你需要通过某种方式将这些ice候选项传递给另一台设备,通常是通过第一次创建连接时使用的相同信令服务器。当它们到达另一侧时,您需要调用peerconnection.addIceCandidate。
如果您执行这些步骤,则可以在具有严格NAT类型的网络之间获得正确的连接。

1
如果你只看发布的源代码,你会发现他使用了大量的STUN服务器。 - Benjamin Trent
@BenjaminTrent 如果你仔细读我的回答,你会发现他需要一个TURN服务器。他还没有发送他的ICE候选项,也没有在另一端设置它们。 - lorenzo373
在我看来,他正在处理 onicecandidate 并通过信令进行传输...除非这个逻辑在 CoffeeScript 中不起作用。 - Benjamin Trent
也许不适用于Coffeescript...我打算在Javascript中尝试一下 - oihi08
我尝试使用TURN服务器(http://www.turnservers.com/),但不起作用。更新的代码在Github上。谢谢! - oihi08
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接