| 94 | |
| 95 | template <typename T> |
| 96 | net::awaitable<void> serverLogic(T&& completionToken) { |
| 97 | boost::beast::tcp_stream stream{std::move(server_)}; |
| 98 | boost::beast::flat_buffer buffer; |
| 99 | http::request<http::string_body> request; |
| 100 | co_await http::async_read(stream, buffer, request, completionToken); |
| 101 | co_await WebSocketSession::handleSession(queryHub(), registry_, request, |
| 102 | std::move(stream.socket())); |
| 103 | } |
| 104 | |
| 105 | auto serverLogic() { return serverLogic(net::use_awaitable); } |
| 106 | }; |