userver
C++ Async Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
websocket_response.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/clients/http/websocket_response.hpp
4
/// @brief @copybrief clients::http::WebSocketResponse
5
6
#
include
<
userver
/
clients
/
http
/
response
.
hpp
>
7
#
include
<
userver
/
fs
/
blocking
/
file_descriptor
.
hpp
>
8
9
USERVER_NAMESPACE_BEGIN
10
11
namespace
websocket {
12
class
WebSocketConnection
;
13
}
// namespace websocket
14
15
namespace
clients::http {
16
17
/// @brief HTTP response for WebSocket upgrade.
18
///
19
/// Call @ref http::client::Request::PerformWebSocketHandshake()
20
/// to get one. After successful WebSocket handshake, you can use
21
/// MakeWebSocketConnection() to establish a WebSocket connection.
22
///
23
/// @snippet samples/websocket_client/main.cpp WebSocket client sample - handler
24
class
WebSocketResponse
final
{
25
public
:
26
/// @cond
27
WebSocketResponse(std::shared_ptr<Response> handshake_response, fs::
blocking
::FileDescriptor&& socket);
28
/// @endcond
29
30
WebSocketResponse() =
default
;
31
WebSocketResponse(WebSocketResponse&&) =
default
;
32
WebSocketResponse(
const
WebSocketResponse&) =
delete
;
33
WebSocketResponse& operator=(WebSocketResponse&&) =
default
;
34
WebSocketResponse& operator=(
const
WebSocketResponse&) =
delete
;
35
36
/// @brief Get the HTTP handshake response
37
std::shared_ptr<Response>
GetHandshakeResponse
() {
return
handshake_response_; }
38
39
/// @brief Check if WebSocket protocol upgrade was successful
40
/// @returns true if handshake completed with status 101 Switching Protocols
41
bool
IsProtocolUpgraded
()
const
;
42
43
/// @brief Create a WebSocket connection from this response
44
std::shared_ptr<websocket::
WebSocketConnection
>
MakeWebSocketConnection
();
45
46
private
:
47
std::shared_ptr<Response> handshake_response_;
48
fs::
blocking
::FileDescriptor socket_;
49
};
50
51
}
// namespace clients::http
52
53
USERVER_NAMESPACE_END
userver
clients
http
websocket_response.hpp
Generated on
for userver by
Doxygen
1.17.0