On Tue, Dec 15, 2020 at 11:54 AM Dominique Devienne <ddevie...@gmail.com> wrote:
> Hi. Continuing my explorations of Boost.Beast. > > So now I have: > * a small Boost.Beast HTTP server (based on async_http_server example), and > * a small Boost.Beast HTTP client (based on sync_http_client example). > > This works, in that I can start the client (wrapped in a helper class), > make several requests, and close the client. But until now, the client was > short-lived, > so no problem. (the server was started too of course, and long lived as > expected). > > Now I'm embedding that HTTP client into another (WebSocket) server, > which uses that same wrapper class above, successfully connects to the > HTTP server on startup, and now waits for WebSocket connections, at which > time it's supposed to make HTTP requests to the HTTP server for various > reasons. > > Problem is, the HTTP client times out after 5s. While I want it to be long > lived. > I've read Vinnie's answer in https://stackoverflow.com/a/56880415/103724 > about > sync operation not having timeouts, but I don't want to control timeouts > of individual > requests here (for now at least), I want to not have the underlying socket > not timeout > on its own, the same way a WebSocket does not timeout either. Is that > possible? > Who controls that 5s timeout? > > Would switching to an async HTTP client make any difference? Sounds to me > that > it would allow me to control timeouts of requests, but would it make any > difference > to the socket timeout described above? > > Thanks, --DD > Not that I tried to obvious below, to stream_.expires_never() on the client side, and that doesn't make a difference. ``` beast::error_code ec; impl_->resolved_to_ = impl_->resolver_.resolve( impl_->host_, std::to_string(port), ec ); if (!ec) { impl_->stream_.connect(impl_->resolved_to_, ec); } if (ec) { [...] return false; } impl_->stream_.expires_never(); ``` Also tried adding the stream_.expires_never() on the server-side ``` // Take ownership of the stream session( const ServerConfig& config, tcp::socket&& socket ) : config_(config) , stream_(std::move(socket)) { stream_.expires_never(); } ``` Still the 5s timeout :(
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org https://lists.boost.org/mailman/listinfo.cgi/boost-users