创建WebRTC对等连接时,我是否可以跳过ICE(晕眩/翻转)发现过程?

创建WebRTC对等连接时,我是否可以跳过ICE(晕眩/翻转)发现过程?,webrtc,Webrtc,在我的设置中,我在云中有一个处理音频和视频的自定义服务器,所以我不需要(也不想要)整个“我在哪里,我的私人和公共地址是什么”的发现过程。基本上,我想要SDP服务,而不关心IP地址/端口;该服务提供给服务器,服务器选择编解码器并获取SRTP密钥,然后向浏览器回复SDP应答,该应答将包含公共地址、编解码器选择及其密钥。理想情况下,浏览器开始向服务器发送媒体,服务器只需将“对等”媒体发送回它的来源(这将通过任何UDP友好的NAT设备隧道返回) 我知道这在技术上是可行的,因为我已经用Win32/OSX桌

在我的设置中,我在云中有一个处理音频和视频的自定义服务器,所以我不需要(也不想要)整个“我在哪里,我的私人和公共地址是什么”的发现过程。基本上,我想要SDP服务,而不关心IP地址/端口;该服务提供给服务器,服务器选择编解码器并获取SRTP密钥,然后向浏览器回复SDP应答,该应答将包含公共地址、编解码器选择及其密钥。理想情况下,浏览器开始向服务器发送媒体,服务器只需将“对等”媒体发送回它的来源(这将通过任何UDP友好的NAT设备隧道返回)


我知道这在技术上是可行的,因为我已经用Win32/OSX桌面客户端实现了这一点。。。问题是,WebRTC和
RTPEERCONNECTION
是否可以这样做?我尝试了几种配置类型,例如
{}
{“iceServers”:[]}
,但它似乎仍然经历了发现循环。有没有其他方法可以缩短这个过程?谢谢

否,您不能跳过该过程,因为WebRTC实现强制使用ICE和STUN检查来修复。因此,当前的Chrome实现将强制对ICE候选协议中协商的ip/端口进行STUN检查


但是,是的,有许多应用程序在没有此要求的情况下工作。总有一天,我们必须转向更好、更安全的实现。现在是…

不,您不能在webrtc浏览器中跳过它,但是webrtc设备(这里是您的网关)可以通过只实现ICE Lite简化过程。

感谢您的回答和链接。我的体系结构需要TLS上的信令(SIP)和媒体的经过身份验证的SRTP。我计划通过HTTPS/TLS使用WebRTC和WebSockets,并要求经过身份验证的SRTP,因此我不确定为什么出于安全目的需要额外的ICE/STUN检查…?安全问题在于媒体会话的建立。您可以阅读该文档以获得更多澄清,但事实是,您不能像旧的“Win32/OSX桌面客户端”那样,仅使用c=和m=SDP头启动Chrome媒体会话。这是不正确的。如果你不提供眩晕(或回合)服务器,则根本不会进行眩晕检查。然而,ICE仍将发生,并将收集和使用主机(本地)候选。