2

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

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

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

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

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

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

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

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

我意识到顺序和时间是 webrtc 的一切。我只是不明白它如何在同一网络上的不同电脑上工作,而不是在不同的网络上工作。我应该指出,当我说相同的网络时,我在工作中使用 2 台电脑和在家中使用 2 台电脑进行测试。所以我不认为它是防火墙的事情。

有任何想法吗?

我确实查看了https://apprtc.appspot.com/,因为它是一个稍微相关的链接。这导致我添加了几个设置超时,尽管它们似乎没有帮助。

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

更新:

我根据 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

4

1 回答 1

3

Chrome 还没有实现 TURN。STUN 仅对某些类型的 NAT 有帮助,但对家庭路由器中流行的对称 NAT 没有帮助。您需要一个具有公共 IP 的媒体中继来连接对称 NAT 后面的两个设备,其标准是 TURN https://www.rfc-editor.org/rfc/rfc5766

于 2012-11-05T11:51:15.150 回答