是否可以通过WebRTC强制进行TCP隧道(TLS)连接?
我们正在为我们的业务开发WebRTC应用程序,但由于内部网络而导致传入UDP流出现一些重大问题。我们已经在使用TURN服务器,并且正在获得许多ICE候选对象(甚至是中继UDP候选对象)。
就像我上面提到的,问题在于,我们传入的UDP流量在这里不能可靠地工作(卡顿,非常差的图像质量,非常低的fps)。足以给浏览器留下印象,WebRTC可以将其用于PeerConnection(s),但实际结果在UDP上非常糟糕。
如果我阻止所有传出和传入的UDP流,则可以(在Wireshark中)看到WebRTC通过使用turn服务器回退到TCP流量。
通过TCP连接,我们获得了很好的结果(高帧速率和非常好的图像质量)。
我已经尝试过几种强制TCP的方法:
m =视频TLS/RTP/SAVPF 10011611796
在每种情况下,我什至都无法建立连接。
我可以做些什么来强制在WebRTC中使用TCP,还是真的完全依赖这里的浏览器?
最佳答案
使用TURN/TCP服务器配置对等连接,并将iceTransports约束设置为中继。参见http://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
请注意,质量通常比UDP差。
浏览器到浏览器的连接不支持ICE-TCP。仅当您有SFU/MCU/Gateway设备时。
关于google-chrome - 强制为WebRTC PeerConnections使用TCP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35062682/