RTCDataChannel API不提供任何類型的流量/控制或背壓,這是否意味着發件人理論上可能會使接收器的瀏覽器崩潰?在我看來,瀏覽器(Chrome,Firefox等都使用SCTP),從SCTP連接讀取數據並調度運行js回調消費數據包。如果事件隊列不能跟上發送者,瀏覽器基本上會連續讀取數據包,同時將數據包存儲在無限期增長的緩衝區中。所以當你連接兩個瀏覽器時,發送者實際上可能總是壓倒另一個瀏覽器,因爲沒有像TCP接收窗口或類似的東西的障礙。WebRTC DataChannel流量/控制/背壓
這也適用於websocket api。
我只是錯過了一些東西,或者這些API只是壞了嗎?如果我是對的,那麼在與未經身份驗證的瀏覽器進行交流時(例如在某種情況下),這將是一個嚴重的安全問題。
我會假設瀏覽器中的底層代碼會考慮到這一點,但你知道當你做出一個假設時會發生什麼...... – 2014-11-21 14:06:55
僅供參考:另一種方式也會產生問題。如果您嘗試發送數據,則可以儘可能快地發送。數據在內部進行緩衝。但是在某些時候,由於網絡無法跟上緩衝數據,因此您將耗盡內存。 WebRTC提供了bufferedamount信息,但這意味着您必須輪詢此變量以將緩衝區大小保持在高水位和低水位。瘋狂...這似乎只是破(或至少沒有完全想通) – Kr0e 2014-11-21 14:42:41