所以我建立了一个网站。使用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上。
2012年11月21日更新
代码现在适用于除不同网络连接之外的所有内容。 (如本文所述)
更新于2013年5月28日
今年google io在解释转身,眩晕和冰上方面要好得多。
http://www.youtube.com/watch?feature=player_embedded&v=p2HzZkd2A40
这里的参考是帮助我开始的老年人
答案 0 :(得分:3)
Chrome尚未实施TURN。 STUN只能用于某些类型的NAT,但不能用于家用路由器中普遍使用的对称NAT。您需要一个带有公共IP的媒体中继来连接两个位于对称NAT后面的设备,其标准是TURN http://tools.ietf.org/html/rfc5766。