将 WebRTC RTCSessionDescription.sdp 剥离到最小?

Strip WebRTC RTCSessionDescription.sdp to minimum?

我正在尝试使用 WebRTC 在没有信号服务器的情况下在两个浏览器之间构建一个聊天应用程序。手动提供-回答过程是任务中最困难的部分。

我发现 new RTCPeerConnection().createOffer() 生成的大多数 SDP 数据(如 RTCSessionDescription.sdp 中)都是多余的。

参考:https://webrtchacks.com/sdp-anatomy/

我测试过,o= 行可以像 o=- 1 2 IN IP4 127.0.0.1 那样条带化,而且工作得很好,a=candidate: 行包含 FOUNDATION 标识符和优先级完全没用,据说只有一个我的候选人。

我的问题是,对于没有 ICE 的两个浏览器之间的简单(且不安全)聊天应用程序,我们可以删除 a=ice-pwd: 行和 a=fingerprint: 行吗? SDP 的其余部分看起来相同,可以硬编码到两个对等体中。

这个问题之前在 WebRTCHacks 上出现过: https://webrtchacks.com/the-minimum-viable-sdp/ 自 2015 年以来没有那么多变化,因此它应该仍然适用。