可能是浏览器p2p与非浏览器(不是客户端 - 服务器,不是中继)

时间:2016-04-13 08:00:44

标签: sockets browser embedded video-streaming webrtc

我正在尝试找到使NAT后面的浏览器(windows)可以使用嵌入式Linux设备p2p的解决方案,后面是另一个没有配置路由器的NAT,我已经调查并尝试了同步方法,但都无法工作:

1.UDP打孔

  

a.browser无法发送UDP数据包(chrome.socket似乎可以)
  b.browser无法绑定端口

2.TCP打孔

  

a.browser无法绑定端口,很难做到

3.WebRTC(学习)

  

我想交叉编译到我的嵌入式linux设备,尝试使用 RTCPeerconnection RTCDataChannel 两个WebRTC API与浏览器p2p,我不确定是不是可以工作

4.RTP流(尚未尝试)

  

因为我想从设备获取视频实时流,我看到视频流可以通过RTP传输之前,但RTP基于UDP,我不确定它是否正常工作

我还搜索了一些类似case1case2的类似案例,但我仍然不知道该怎么做,可行吗?

1 个答案:

答案 0 :(得分:0)

答案是WebRTC。

WebRTC在没有任何额外工作的情况下完成此任务(这是它的优势)。这是通过使用STUN来发现外部地址的ICE完成的(STUN服务器本身不会中继任何东西。它只是一个简单的乒乓协议,用作NAT处理的标准)。

然而,通过这种方式,绕过NAT只能获得大约80-90%的成功(如果我们查看全局统计数据)。对于其余部分,您将需要一个TURN服务器并将其配置为WebRTC客户端用于处理NAT后面两个端点之间的UDP路由无法工作的情况。