Как контролировать скорость передачи под libuv?

Как мы все знаем, libuv — это асинхронная сетевая библиотека, она сделает все возможное для отправки данных, однако в некоторых случаях мы не можем использовать всю пропускную способность, скорость передачи необходимо контролировать на заданном значении, как сделать это с libuv API?


person Dr.Nemo    schedule 01.07.2016    source источник


Ответы (1)


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.

person saghul    schedule 25.07.2016