当用户在不同的网络上时,Webrtc没有视频

时间:2012-10-13 00:14:01

标签: google-chrome signalr webrtc

所以我建立了一个网站。使用clienta页面和clientb页面。

这基本上是这个网站的拆分版本: https://webrtc-demos.appspot.com/html/pc2.html

我正在使用signalr(websockets)在客户端之间交换信息。

当用户在同一台​​计算机上打开cleinta和b时,它可以正常工作。

当用户在一台计算机上打开clienta并在另一台计算机上打开clientb但两台计算机都在同一网络上时,它可以正常工作。

当用户在一台计算机和另一台计算机上打开clienta时,打开clientb但在不同的网络上没有视频或音频。

当交换冰消息时,我传回一个号码,所以我知道它发送的订单。在另一端,它们并不总是达到相同的顺序,但音频#1总是在音频#2之前到达那里。和视频一样。

在所有情况下我都使用chrome dev 24。

我意识到序列和时间是webrtc的一切。我只是不明白它如何在同一网络上的单独的PC上工作,而不是不同的网络。我应该指出,当我说同一个网络ive测试两个工作在2个和家里有2个。所以我不认为它是防火墙的东西。

有什么想法吗?

我确实将https://apprtc.appspot.com/作为一个稍微相关的链接。这导致我添加了几个setoutouts,虽然他们似乎没有帮助。

最后一件事,我确实提到过冰消息。我还应该注意,双方都发送和接收所有消息。创建商品并创建答案。因此,它在相同的网络机器上工作。

更新

我根据webrtc.org使用jsep和所有最新语法

2012年11月15日更新:

是否有用于创建媒体中继的开源软件包?

特别是.net,但可能是php。当前网站面向公众,这就是我能够在多个网络上进行测试的方式。所以看起来我只需要媒体中继的另一个端点。

2012年11月16日更新:

希望我能让它工作或从其他开发者那里获得宝贵的意见,我将我的代码放在github上。

https://github.com/thorst/RTC

2012年11月21日更新

代码现在适用于除不同网络连接之外的所有内容。 (如本文所述)

更新于2013年5月28日

今年google io在解释转身,眩晕和冰上方面要好得多。

http://www.youtube.com/watch?feature=player_embedded&v=p2HzZkd2A40

这里的参考是帮助我开始的老年人

http://www.youtube.com/watch?v=E8C8ouiXHHk

http://www.youtube.com/watch?v=dAhhniqwkp8

1 个答案:

答案 0 :(得分:3)

Chrome尚未实施TURN。 STUN只能用于某些类型的NAT,但不能用于家用路由器中普遍使用的对称NAT。您需要一个带有公共IP的媒体中继来连接两个位于对称NAT后面的设备,其标准是TURN http://tools.ietf.org/html/rfc5766