Merges PR#2414
I used this example to start building my WebSocket application, however, I noticed that upon removing the echoing in the on_read method, the server repeatedly throws errors without exiting the method.
You can recreate this problem by replacing the async_write with do_write and cause any error (i.e. client reloads the page).
Adding a return statement here would make debugging for future changes much easier and it wouldn't harm the existing echoing in any way.
Original commit message
fixed an error in websocket_client_async_ssl
close#2315
in this example host_ string should be updated after SSL_set_tlsext_host_name just like the synced version, otherwise this would cause a handshake error
API Changes:
`string_param`, which was previously the argument type when setting field values
has been replaced by `string_view`. Because of this, it is no longer possible to
set message field values directly as integrals.
Users are required to convert numeric arguments to a string type prior to calling
`fields::set` et. al.
Beast provides the non-allocating `to_static_string()` function for this purpose.
To set Content-Length field manually, call `message::content_length`.
fixes#1956
This example websocket client application uses the `system_executor` to show
how to use it with the I/O objects in ASIO and Beast.
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
When using `websocket::stream`, the user has to take care to initiate
async operations within the associated strand.
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
When using `beast::tcp_stream`, the user must make sure that async operations
are initiated from within the strand associated with the stream.
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
This example HTTP client application uses the `system_executor` to show
how to use it with the I/O objects in ASIO and Beast.
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
`asio::spawn` is an extension, which is not part of
the Networking TS, so the `net` alias is not appropriate in this case.
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
`asio::coroutine` is an extension, which is not part of
the Networking TS, so the `net` alias is not appropriate in this case.
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>