fix: unhandled connection closing in websocker_server_awaitable

This commit is contained in:
Anefu
2023-12-23 08:49:47 +01:00
committed by Mohammad Nejati
parent 192b7d5a43
commit f05413912e

View File

@ -76,11 +76,18 @@ do_session(stream ws)
co_await ws.async_write(buffer.data()); co_await ws.async_write(buffer.data());
} }
catch(boost::system::system_error & se) catch (const boost::system::system_error& se)
{ {
if (se.code() != websocket::error::closed) if (se.code() == beast::websocket::error::closed || se.code() == boost::asio::error::operation_aborted)
throw; {
std::cout << "Connection closed by client." << std::endl;
co_return;
}
else
{
std::cerr << "Error: " << se.what() << std::endl;
co_return;
}
} }
} }
@ -111,12 +118,15 @@ do_listen(
do_session(stream(co_await acceptor.async_accept())), do_session(stream(co_await acceptor.async_accept())),
[](std::exception_ptr e) [](std::exception_ptr e)
{ {
try if (e)
{ {
std::rethrow_exception(e); try
} {
catch (std::exception &e) { std::rethrow_exception(e);
std::cerr << "Error in session: " << e.what() << "\n"; }
catch (std::exception &e) {
std::cerr << "Error in session: " << e.what() << "\n";
}
} }
}); });
} }