WebRTC中如何指定UDP或TCP协议的选择

How is the choice of UDP or TCP protocol specified in WebRTC

我了解 WebRTC 支持 TCP 和 UDP 协议。但是,我看不到 API 中可以指定支持哪种协议的位置。 应用程序通常在哪里指定要使用的协议选择?

当两个 RTC/P 客户端连接时,它们通过 session description, among them connection options as discovered by the ICE protocol 交换参数列表。它们具有优先级,可以是 UDP 或 TCP。提供哪些选项以及如何确定它们的优先级取决于客户端实现,即浏览器。

由于由 JavaScript 应用程序控制的信号层传输这些 ice candidates*,因此网站开发人员可以更改这些优先级。例如,可以过滤在 onicecandidate 中接收到的 TCP 或 UDP 候选,或者使用 RegExp 修改优先级。

* 这个答案适用于 webRTC 的 trickle ICE。为了与其他 RTC 系统的互操作性,需要在 SDP 中提供所有 ice 候选者,因此修改会话描述。