WebSocket++
0.8.3-dev
C++ websocket client/server library
|
Processor for Hybi Draft version 08. More...
#include <hybi08.hpp>
Public Types | |
typedef hybi08< config > | type |
typedef config::request_type | request_type |
typedef config::con_msg_manager_type::ptr | msg_manager_ptr |
typedef config::rng_type | rng_type |
Public Types inherited from websocketpp::processor::hybi13< config > | |
typedef processor< config > | base |
typedef config::request_type | request_type |
typedef config::response_type | response_type |
typedef config::message_type | message_type |
typedef message_type::ptr | message_ptr |
typedef config::con_msg_manager_type | msg_manager_type |
typedef msg_manager_type::ptr | msg_manager_ptr |
typedef config::rng_type | rng_type |
typedef config::permessage_deflate_type | permessage_deflate_type |
typedef std::pair< lib::error_code, std::string > | err_str_pair |
Public Types inherited from websocketpp::processor::processor< config > | |
typedef processor< config > | type |
typedef config::request_type | request_type |
typedef config::response_type | response_type |
typedef config::message_type::ptr | message_ptr |
typedef std::pair< lib::error_code, std::string > | err_str_pair |
Public Member Functions | |
hybi08 (bool secure, bool p_is_server, msg_manager_ptr manager, rng_type &rng) | |
lib::error_code | client_handshake_request (request_type &, uri_ptr, std::vector< std::string > const &) const |
Fill in a set of request headers for a client connection request. More... | |
int | get_version () const |
Get the protocol version of this processor. | |
std::string const & | get_origin (request_type const &r) const |
Return the value of the header containing the CORS origin. | |
Public Member Functions inherited from websocketpp::processor::hybi13< config > | |
hybi13 (bool secure, bool p_is_server, msg_manager_ptr manager, rng_type &rng) | |
int | get_version () const |
Get the protocol version of this processor. | |
bool | has_permessage_deflate () const |
err_str_pair | negotiate_extensions (request_type const &request) |
Initializes extensions based on the Sec-WebSocket-Extensions header. More... | |
err_str_pair | negotiate_extensions (response_type const &response) |
Initializes extensions based on the Sec-WebSocket-Extensions header. More... | |
template<typename header_type > | |
err_str_pair | negotiate_extensions_helper (header_type const &header) |
Extension negotiation helper function. More... | |
lib::error_code | validate_handshake (request_type const &r) const |
validate a WebSocket handshake request for this version More... | |
lib::error_code | process_handshake (request_type const &request, std::string const &subprotocol, response_type &response) const |
Calculate the appropriate response for this websocket request. More... | |
lib::error_code | client_handshake_request (request_type &req, uri_ptr uri, std::vector< std::string > const &subprotocols) const |
Fill in a set of request headers for a client connection request. More... | |
lib::error_code | validate_server_handshake_response (request_type const &req, response_type &res) const |
Validate the server's response to an outgoing handshake request. More... | |
std::string | get_raw (response_type const &res) const |
Given a completed response, get the raw bytes to put on the wire. | |
std::string const & | get_origin (request_type const &r) const |
Return the value of the header containing the CORS origin. | |
lib::error_code | extract_subprotocols (request_type const &req, std::vector< std::string > &subprotocol_list) |
Extracts requested subprotocols from a handshake request. More... | |
uri_ptr | get_uri (request_type const &request) const |
Extracts client uri from a handshake request. | |
size_t | consume (uint8_t *buf, size_t len, lib::error_code &ec) |
Process new websocket connection bytes. More... | |
lib::error_code | finalize_message () |
Perform any finalization actions on an incoming message. More... | |
void | reset_headers () |
bool | ready () const |
Test whether or not the processor has a message ready. | |
message_ptr | get_message () |
Retrieves the most recently processed message. More... | |
bool | get_error () const |
Test whether or not the processor is in a fatal error state. | |
size_t | get_bytes_needed () const |
virtual lib::error_code | prepare_data_frame (message_ptr in, message_ptr out) |
Prepare a user data message for writing. More... | |
lib::error_code | prepare_ping (std::string const &in, message_ptr out) const |
Get URI. | |
lib::error_code | prepare_pong (std::string const &in, message_ptr out) const |
virtual lib::error_code | prepare_close (close::status::value code, std::string const &reason, message_ptr out) const |
Public Member Functions inherited from websocketpp::processor::processor< config > | |
processor (bool secure, bool p_is_server) | |
size_t | get_max_message_size () const |
Get maximum message size. More... | |
void | set_max_message_size (size_t new_value) |
Set maximum message size. More... | |
virtual bool | has_permessage_compress () const |
Returns whether or not the permessage_compress extension is implemented. More... | |
virtual lib::error_code | prepare_data_frame (message_ptr in, message_ptr out)=0 |
Prepare a data message for writing. More... | |
virtual lib::error_code | prepare_ping (std::string const &in, message_ptr out) const =0 |
Prepare a ping frame. More... | |
virtual lib::error_code | prepare_pong (std::string const &in, message_ptr out) const =0 |
Prepare a pong frame. More... | |
virtual lib::error_code | prepare_close (close::status::value code, std::string const &reason, message_ptr out) const =0 |
Prepare a close frame. More... | |
Additional Inherited Members | |
Protected Types inherited from websocketpp::processor::hybi13< config > | |
enum | state { HEADER_BASIC = 0, HEADER_EXTENDED = 1, EXTENSION = 2, APPLICATION = 3, READY = 4, FATAL_ERROR = 5 } |
Protected Member Functions inherited from websocketpp::processor::hybi13< config > | |
lib::error_code | process_handshake_key (std::string &key) const |
Convert a client handshake key into a server response key in place. | |
size_t | copy_basic_header_bytes (uint8_t const *buf, size_t len) |
Reads bytes from buf into m_basic_header. | |
size_t | copy_extended_header_bytes (uint8_t const *buf, size_t len) |
Reads bytes from buf into m_extended_header. | |
size_t | process_payload_bytes (uint8_t *buf, size_t len, lib::error_code &ec) |
Reads bytes from buf into message payload. More... | |
lib::error_code | validate_incoming_basic_header (frame::basic_header const &h, bool is_server, bool new_msg) const |
Validate an incoming basic header. More... | |
lib::error_code | validate_incoming_extended_header (frame::basic_header h, frame::extended_header e) const |
Validate an incoming extended header. More... | |
void | masked_copy (std::string const &i, std::string &o, frame::masking_key_type key) const |
Copy and mask/unmask in one operation. More... | |
lib::error_code | prepare_control (frame::opcode::value op, std::string const &payload, message_ptr out) const |
Generic prepare control frame with opcode and payload. More... | |
Protected Attributes inherited from websocketpp::processor::hybi13< config > | |
frame::basic_header | m_basic_header |
msg_manager_ptr | m_msg_manager |
size_t | m_bytes_needed |
size_t | m_cursor |
msg_metadata | m_data_msg |
msg_metadata | m_control_msg |
msg_metadata * | m_current_msg |
frame::extended_header | m_extended_header |
rng_type & | m_rng |
state | m_state |
permessage_deflate_type | m_permessage_deflate |
Protected Attributes inherited from websocketpp::processor::processor< config > | |
bool const | m_secure |
bool const | m_server |
size_t | m_max_message_size |
Processor for Hybi Draft version 08.
The primary difference between 08 and 13 is a different origin header name
Definition at line 44 of file hybi08.hpp.
|
inlinevirtual |
Fill in a set of request headers for a client connection request.
The Hybi 08 processor only implements incoming connections so this will always return an error.
[out] | req | Set of headers to fill in |
[in] | uri | The uri being connected to |
[in] | subprotocols | The list of subprotocols to request |
Implements websocketpp::processor::processor< config >.
Definition at line 64 of file hybi08.hpp.