#include <WebsocketConnection.h>
Public Member Functions | |
| WebsocketConnection (HttpConnection *connection, bool isClientConnection=true) | |
| Constructs a websocket connection on top of http client or server connection. More... | |
| virtual | ~WebsocketConnection () |
| bool | bind (HttpRequest &request, HttpResponse &response) |
| Binds websocket connection to an http server connection. More... | |
| virtual void | send (const char *message, size_t length, ws_frame_type_t type=WS_FRAME_TEXT) |
| Sends a websocket message from a buffer. More... | |
| void | send (const String &message, ws_frame_type_t type=WS_FRAME_TEXT) |
| Sends websocket message from a String. More... | |
| void | sendString (const String &message) |
| Sends a string websocket message. More... | |
| void | sendBinary (const uint8_t *data, size_t length) |
| Sends a binary websocket message. More... | |
| void | close () |
| Closes a websocket connection (without closing the underlying http connection. More... | |
| void | reset () |
| Resets a websocket connection. More... | |
| void | setUserData (void *userData) |
| Attaches a user data to a websocket connection. More... | |
| void * | getUserData () |
| Retrieves user data attached. More... | |
| bool | operator== (const WebsocketConnection &rhs) const |
| Test if another connection refers to the same object. More... | |
| void | setConnectionHandler (WebsocketDelegate handler) |
| Sets the callback handler to be called after successful websocket connection. More... | |
| void | setMessageHandler (WebsocketMessageDelegate handler) |
| Sets the callback handler to be called after a websocket message is received. More... | |
| void | setBinaryHandler (WebsocketBinaryDelegate handler) |
| Sets the callback handler to be called after a binary websocket message is received. More... | |
| void | setDisconnectionHandler (WebsocketDelegate handler) |
| Sets the callback handler to be called before closing a websocket connection. More... | |
| void | activate () |
| Should be called after a websocket connection is established to activate the websocket parser and allow sending of websocket data. More... | |
| bool | onConnected () |
| Call this method when the websocket connection was (re)activated. More... | |
| HttpConnection * | getConnection () |
| Gets the underlying HTTP connection. More... | |
| void | setConnection (HttpConnection *connection, bool isClientConnection=true) |
| Sets the underlying (transport ) HTTP connection. More... | |
| WsConnectionState | getState () |
| Gets the state of the websocket connection. More... | |
Static Public Member Functions | |
| static void | broadcast (const char *message, size_t length, ws_frame_type_t type=WS_FRAME_TEXT) |
| Broadcasts a message to all active websocket connections. More... | |
| static void | broadcast (const String &message, ws_frame_type_t type=WS_FRAME_TEXT) |
| Broadcasts a message to all active websocket connections. More... | |
| static const WebsocketList & | getActiveWebsockets () |
| Obtain the list of active websockets. More... | |
Protected Member Functions | |
| bool | processFrame (TcpClient &client, char *at, int size) |
| Callback handler to process a received TCP data frame. More... | |
| size_t | encodeFrame (ws_frame_type_t type, const char *inData, size_t inLength, char *outData, size_t outLength, bool useMask=true, bool isFin=true) |
| Encode user content into a valid websocket frame. More... | |
Static Protected Member Functions | |
| static int | staticOnDataBegin (void *userData, ws_frame_type_t type) |
| static int | staticOnDataPayload (void *userData, const char *at, size_t length) |
| static int | staticOnDataEnd (void *userData) |
| static int | staticOnControlBegin (void *userData, ws_frame_type_t type) |
| static int | staticOnControlPayload (void *userData, const char *, size_t length) |
| static int | staticOnControlEnd (void *userData) |
Protected Attributes | |
| WebsocketDelegate | wsConnect = nullptr |
| WebsocketMessageDelegate | wsMessage = nullptr |
| WebsocketBinaryDelegate | wsBinary = nullptr |
| WebsocketDelegate | wsDisconnect = nullptr |
| void * | userData = nullptr |
| WsConnectionState | state = eWSCS_Ready |
Constructor & Destructor Documentation
◆ WebsocketConnection()
| WebsocketConnection::WebsocketConnection | ( | HttpConnection * | connection, |
| bool | isClientConnection = true |
||
| ) |
Constructs a websocket connection on top of http client or server connection.
- Parameters
-
connection the transport connection isClientConnection true when the passed connection is an http client conneciton
◆ ~WebsocketConnection()
|
inlinevirtual |
Member Function Documentation
◆ activate()
| void WebsocketConnection::activate | ( | ) |
Should be called after a websocket connection is established to activate the websocket parser and allow sending of websocket data.
◆ bind()
| bool WebsocketConnection::bind | ( | HttpRequest & | request, |
| HttpResponse & | response | ||
| ) |
Binds websocket connection to an http server connection.
- Parameters
-
request response
- Return values
-
bool true on success, false otherwise
◆ broadcast() [1/2]
|
static |
Broadcasts a message to all active websocket connections.
- Parameters
-
message length type
◆ broadcast() [2/2]
|
inlinestatic |
Broadcasts a message to all active websocket connections.
- Parameters
-
message type
◆ close()
| void WebsocketConnection::close | ( | ) |
Closes a websocket connection (without closing the underlying http connection.
◆ encodeFrame()
|
protected |
Encode user content into a valid websocket frame.
- Parameters
-
type inData inLength outData outLength useMask MUST be true for client connections isFin true if this is the final frame
- Return values
-
size_t Size of encoded frame
◆ getActiveWebsockets()
|
inlinestatic |
Obtain the list of active websockets.
- Return values
-
const WebsocketList&
- Note
- Return value is const as only restricted operations should be carried out on the list.
◆ getConnection()
|
inline |
Gets the underlying HTTP connection.
- Return values
-
HttpConnection*
◆ getState()
|
inline |
Gets the state of the websocket connection.
- Return values
-
WsConnectionState
◆ getUserData()
|
inline |
Retrieves user data attached.
- Return values
-
void* The user data previously set by setUserData()
◆ onConnected()
| bool WebsocketConnection::onConnected | ( | ) |
Call this method when the websocket connection was (re)activated.
- Return values
-
bool true on success
◆ operator==()
|
inline |
Test if another connection refers to the same object.
- Parameters
-
rhs The other WebsocketConnection to compare with
- Return values
-
bool
◆ processFrame()
Callback handler to process a received TCP data frame.
- Parameters
-
client at size
- Return values
-
bool true if data parsing successful
◆ reset()
| void WebsocketConnection::reset | ( | ) |
Resets a websocket connection.
◆ send() [1/2]
|
virtual |
Sends a websocket message from a buffer.
- Parameters
-
message length Quantity of data in message type
◆ send() [2/2]
|
inline |
◆ sendBinary()
|
inline |
Sends a binary websocket message.
- Parameters
-
data length
◆ sendString()
|
inline |
Sends a string websocket message.
- Parameters
-
message
◆ setBinaryHandler()
|
inline |
Sets the callback handler to be called after a binary websocket message is received.
- Parameters
-
handler
◆ setConnection()
|
inline |
Sets the underlying (transport ) HTTP connection.
- Parameters
-
connection the transport connection isClientConnection true when the passed connection is an http client conneciton
◆ setConnectionHandler()
|
inline |
Sets the callback handler to be called after successful websocket connection.
- Parameters
-
handler
◆ setDisconnectionHandler()
|
inline |
Sets the callback handler to be called before closing a websocket connection.
- Parameters
-
handler
◆ setMessageHandler()
|
inline |
Sets the callback handler to be called after a websocket message is received.
- Parameters
-
handler
◆ setUserData()
|
inline |
Attaches a user data to a websocket connection.
- Parameters
-
userData
◆ staticOnControlBegin()
|
staticprotected |
◆ staticOnControlEnd()
|
staticprotected |
◆ staticOnControlPayload()
|
staticprotected |
◆ staticOnDataBegin()
|
staticprotected |
◆ staticOnDataEnd()
|
staticprotected |
◆ staticOnDataPayload()
|
staticprotected |
Member Data Documentation
◆ state
|
protected |
◆ userData
|
protected |
◆ wsBinary
|
protected |
◆ wsConnect
|
protected |
◆ wsDisconnect
|
protected |
◆ wsMessage
|
protected |
The documentation for this class was generated from the following file:
1.8.13