WPILibC++ 2025.2.1
Loading...
Searching...
No Matches
wpi::WebSocketServerHelper Class Reference

WebSocket HTTP server helper. More...

#include <wpinet/WebSocketServer.h>

Public Member Functions

 WebSocketServerHelper (HttpParser &req)
 Constructor.
 
bool IsWebsocket () const
 Get whether or not this was a websocket upgrade.
 
std::pair< bool, std::string_view > MatchProtocol (std::span< const std::string_view > protocols)
 Try to find a match to the list of sub-protocols provided by the client.
 
std::pair< bool, std::string_view > MatchProtocol (std::initializer_list< std::string_view > protocols)
 Try to find a match to the list of sub-protocols provided by the client.
 
std::shared_ptr< WebSocketAccept (uv::Stream &stream, std::string_view protocol={})
 Accept the upgrade.
 
bool IsUpgrade () const
 

Public Attributes

sig::Signal upgrade
 Upgrade event.
 

Detailed Description

WebSocket HTTP server helper.

Handles websocket-specific headers. User must provide the HttpParser.

Constructor & Destructor Documentation

◆ WebSocketServerHelper()

wpi::WebSocketServerHelper::WebSocketServerHelper ( HttpParser & req)
explicit

Constructor.

Parameters
reqHttpParser for request

Member Function Documentation

◆ Accept()

std::shared_ptr< WebSocket > wpi::WebSocketServerHelper::Accept ( uv::Stream & stream,
std::string_view protocol = {} )
inline

Accept the upgrade.

Disconnect other readers (such as the HttpParser reader) before calling this. See also WebSocket::CreateServer().

Parameters
streamConnection stream
protocolThe subprotocol to send to the client

◆ IsUpgrade()

bool wpi::WebSocketServerHelper::IsUpgrade ( ) const
inline

◆ IsWebsocket()

bool wpi::WebSocketServerHelper::IsWebsocket ( ) const
inline

Get whether or not this was a websocket upgrade.

Only valid during and after the upgrade event.

◆ MatchProtocol() [1/2]

std::pair< bool, std::string_view > wpi::WebSocketServerHelper::MatchProtocol ( std::initializer_list< std::string_view > protocols)
inline

Try to find a match to the list of sub-protocols provided by the client.

The list is priority ordered, so the first match wins. Only valid during and after the upgrade event.

Parameters
protocolsAcceptable protocols
Returns
Pair; first item is true if a match was made, false if not. Second item is the matched protocol if a match was made, otherwise is empty.

◆ MatchProtocol() [2/2]

std::pair< bool, std::string_view > wpi::WebSocketServerHelper::MatchProtocol ( std::span< const std::string_view > protocols)

Try to find a match to the list of sub-protocols provided by the client.

The list is priority ordered, so the first match wins. Only valid during and after the upgrade event.

Parameters
protocolsAcceptable protocols
Returns
Pair; first item is true if a match was made, false if not. Second item is the matched protocol if a match was made, otherwise is empty.

Member Data Documentation

◆ upgrade

sig::Signal wpi::WebSocketServerHelper::upgrade

Upgrade event.

Call Accept() to accept the upgrade.


The documentation for this class was generated from the following file: