Похожий на этот вопрос, но я хотел бы общаться асинхронно, используя пион.
Я думаю, что я понял, как создать соединение асинхронно:
pion::tcp::connection_ptr connection(new pion::tcp::connection(_io_service));
connection->async_connect(ep,
boost::bind(&http_client::after_connect,
this,
connection,
_1));
Теперь я хотел бы отправить запрос, используя pion::http::request
, но все его методы отправки блокируются. Как я могу отправить асинхронно?
Eсть request_writer
класс в пион. Насколько я помню это имеет send()
функция-член для отправки данных асинхронно.
// create
auto writer = pion::http::request_writer::create(connection);
// set data
writer->write(11);
writer->write(some_buffer, bufer_size);
// send data
writer->send();