C++ webrtc データ チャネル ライブラリを使用しており、テスト アプリケーションで、合計で約 256kB になるいくつかの小さなパケットを送信すると、usrsctp_sendv()
呼び出しは -1 を返します (errnoEWOULDBLOCK/EAGAIN
は「リソースが一時的に利用できません」を意味します)。これは、デフォルトで 256 kB である usrsctp の送信バッファ制限に達しているためだと考えています。そのバッファをクリアすることを期待して、各送信呼び出しの間にいくつかのスリープ遅延を追加しようとしましたが、何も機能しません.
受信側 (JS Web ページ) は、エラーが発生するまで、送信したすべてのバイトを実際に受信します。これは、C++ アプリケーションから JS にデータを送信しようとしたときにのみ発生し、その逆では発生しないことにも注意してください。Mozillaのデータチャネルの実装を調べてみましたが、問題の原因について結論を出すことができないようです。