我们正在使用C++ webrtc 数据通道库,在我们的测试应用程序中,在发送一些总计约 256kB 的小数据包后,usrsctp_sendv()
调用返回 -1(使用 errnoEWOULDBLOCK/EAGAIN
表示“资源暂时不可用”)。我们认为这是因为我们达到了 usrsctp 的发送缓冲区限制,默认为 256 kB。我们尝试在每次发送调用之间添加几个睡眠延迟,希望它能清除缓冲区,但没有任何效果。
接收方(一个 JS 网页)确实会接收到我们发送的所有字节,直到它出错。还值得注意的是,这只发生在我们尝试将数据从 C++ 应用程序发送到 JS 时,而不是相反。我们尝试查看 Mozilla 的数据通道实现,但似乎无法就问题可能得出任何结论。