浏览器 p2p 是否有可能与非浏览器(不是客户端服务器,不是中继)
Is possible that browser p2p with non-browser(not client-server,not relay)
我正在尝试找到解决方案,使 NAT 后面的浏览器(windows)可以与嵌入式 linux 设备进行 p2p,而嵌入式 linux 设备位于另一个 NAT 后面而无需配置路由器,我已经调查并试过各种方法都行不通:
1.UDP打孔:
a.browser cannot send UDP packet(chrome.socket seems could)
b.browser cannot bind port
2.TCP打孔
a.browser cannot bind port,hard to do
3.WebRTC(在读)
I want to cross-compilie to my embedded linux device,try to use RTCPeerconnection or RTCDataChannel two WebRTC API to p2p with browser,I'm not sure does it can work
4.RTP流(还没试过)
because I want to get video live stream from device,I saw video stream can transfer by RTP before,but RTP base on UDP,I'm not sure dose it work
我也搜索了一些类似的案例,比如case1 and case2,但我仍然不知道该怎么做,是否可行?
答案是WebRTC。
WebRTC 无需任何额外工作即可完成此操作(这是它的优势)。这是通过使用 STUN 发现外部地址的 ICE 完成的(STUN 服务器本身不会中继任何东西。它只是一个简单的乒乓协议,用作 NAT 处理的标准)。
然而,通过这种方式,您绕过 NAT 的成功率只有大约 80-90%(如果我们查看全球统计数据)。对于其余部分,您将需要一个 TURN 服务器并将其配置为供您的 WebRTC 客户端使用,以处理 NAT 后面的 2 个端点之间的 UDP 路由无法正常工作的情况。
我正在尝试找到解决方案,使 NAT 后面的浏览器(windows)可以与嵌入式 linux 设备进行 p2p,而嵌入式 linux 设备位于另一个 NAT 后面而无需配置路由器,我已经调查并试过各种方法都行不通:
1.UDP打孔:
a.browser cannot send UDP packet(chrome.socket seems could)
b.browser cannot bind port
2.TCP打孔
a.browser cannot bind port,hard to do
3.WebRTC(在读)
I want to cross-compilie to my embedded linux device,try to use RTCPeerconnection or RTCDataChannel two WebRTC API to p2p with browser,I'm not sure does it can work
4.RTP流(还没试过)
because I want to get video live stream from device,I saw video stream can transfer by RTP before,but RTP base on UDP,I'm not sure dose it work
我也搜索了一些类似的案例,比如case1 and case2,但我仍然不知道该怎么做,是否可行?
答案是WebRTC。
WebRTC 无需任何额外工作即可完成此操作(这是它的优势)。这是通过使用 STUN 发现外部地址的 ICE 完成的(STUN 服务器本身不会中继任何东西。它只是一个简单的乒乓协议,用作 NAT 处理的标准)。
然而,通过这种方式,您绕过 NAT 的成功率只有大约 80-90%(如果我们查看全球统计数据)。对于其余部分,您将需要一个 TURN 服务器并将其配置为供您的 WebRTC 客户端使用,以处理 NAT 后面的 2 个端点之间的 UDP 路由无法正常工作的情况。