...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Send a websocket pong control frame asynchronously.
template< class WriteHandler = net::default_completion_token_t<executor_type>> DEDUCED async_pong( ping_data const& payload, WriteHandler&& handler = net::default_completion_token_t< executor_type >{});
This function is used to asynchronously send a pong frame, which is usually sent automatically in response to a ping frame from the remote peer.
The algorithm, known as a composed asynchronous operation,
is implemented in terms of calls to the next layer's async_write_some
function. The program must ensure that no other calls to websocket::stream::ping
, websocket::stream::pong
, websocket::stream::async_ping
, or websocket::stream::async_pong
are performed until
this operation completes. If a close frame is sent or received before the
pong frame is sent, the error received by this completion handler will
be net::error::operation_aborted
. WebSocket allows pong
frames to be sent at any time, without first receiving a ping. An unsolicited
pong sent in this fashion may indicate to the remote peer that the connection
is still active.
Name |
Description |
---|---|
|
The payload of the pong message, which may be empty. The implementation will not access the contents of this object after the initiating function returns. |
|
The completion handler to invoke when the operation completes. The implementation takes ownership of the handler by performing a decay-copy. The equivalent function signature of the handler must be: void handler( error_code const& ec // Result of operation );
Regardless of whether the asynchronous operation completes immediately
or not, the handler will not be invoked from within this function.
Invocation of the handler will be performed in a manner equivalent
to using |