RTCDataChannel API 不提供任何类型的流/控制或背压,这是否意味着发送方理论上可以使接收方的浏览器崩溃?在我看来,浏览器(Chrome、Firefox 等都在后台使用 SCTP)从 SCTP 连接中读取数据并安排运行 js-callback 来消耗数据包。如果事件队列跟不上发送者的速度,浏览器基本上会不断地读取数据包,同时将数据包存储在一个无限增长的缓冲区中。因此,当您连接两个浏览器时,发送方实际上总是可以压倒另一个,因为没有 TCP 接收窗口或类似的障碍。
这也适用于 websocket api。
我只是错过了一些东西还是这些 API 只是坏了?如果我是对的,那么在与未经身份验证的浏览器交谈时(例如在洪流场景中),这将是一个严重的安全问题。