Код: Выделить всё
std::queue< nlohmann::json > outgoingMessages;
void session::do_write( void ) {
if ( outgoingMessages.size() > 0 ) {
auto message = outgoingMessages.front();
outgoingMessages.pop();
ws_.async_write( boost::asio::buffer( message.dump() ), boost::beast::bind_front_handler( & session::on_write, shared_from_this() ) );
}
};
void session::on_write( boost::beast::error_code errorCode, std::size_t bytes_transferred ) {
if ( errorCode )
return fail( errorCode, "write" );
if ( bytes_transferred == 0 )
std::this_thread::sleep_for( std::chrono::milliseconds( 1 ) );
do_write();
};
Подробнее здесь: https://stackoverflow.com/questions/690 ... with-queue
Мобильная версия