libuv下如何控制传输速度?

How to control the transmission speed under libuv?

众所周知,libuv是一个异步网络库,它会尽最大努力将数据发送出去,但是在某些情况下,我们不能占用所有的带宽,传输速度需要控制在指定值,如何使用 libuv api?

libuv 不提供执行此操作的内置机制,但它确实为您提供了足够的信息来构建它。假设您使用的是 TCP,您将重复调用 uv_write。然后您可以查询 write_queue_size (http://docs.libuv.org/en/v1.x/stream.html#c.uv_stream_t.write_queue_size) 并停止等待,直到它耗尽一点。您可以在传递给 uv_write.

的回调中执行此检查