|  | 
| struct | M2MB_WEBSOCKET_CTX | 
|  | websocket client context used with every websocket API.  More... 
 | 
|  | 
| struct | M2MB_WEBSOCKET_EVENT_INFO | 
|  | Websocket event. Received by M2MB_WEBSOCKETC_EVENT_CB_T callback registered with m2mb_websocketc_new API.  More... 
 | 
|  | 
| struct | M2MB_WEBSOCKET_OPEN_PARAMS | 
|  | Client configuration parameters. For use with m2mb_websocketc_new.  More... 
 | 
|  | 
| union | M2MB_WEBSOCKET_CONF_PARAMS | 
|  | Client configuration parameters. For use with m2mb_websocket_cfg.  More... 
 | 
|  | 
| #define | WEBSOCKETC_MAX_CLIENTS   (4) | 
|  | 
| #define | WEBSOCKET_MAX_SUBPROTOCOLS   (4) | 
|  | 
| enum | M2MB_WEBSOCKET_STATE_E { M2MB_WEBSOCKET_STATE_INITIAL_E = 0,
 M2MB_WEBSOCKET_STATE_CONNECTING_E = 1,
 M2MB_WEBSOCKET_STATE_OPEN_E = 2,
 M2MB_WEBSOCKET_STATE_CLOSING_E = 3,
 M2MB_WEBSOCKET_STATE_CLOSED_E = 4
 }
 | 
|  | The state of the websocket.  More... 
 | 
|  | 
| enum | M2MB_WEBSOCKET_OPTION_E { M2MB_WEBSOCKET_OPTION_STATE = 1,
 M2MB_WEBSOCKET_OPTION_ERRNO = 2,
 M2MB_WEBSOCKET_OPTION_SOCKET_ERRNO = 3,
 M2MB_WEBSOCKET_OPTION_SSL_ERRNO = 4,
 M2MB_WEBSOCKET_OPTION_NUM_RX_BYTES = 5,
 M2MB_WEBSOCKET_OPTION_NUM_TX_BYTES = 6,
 M2MB_WEBSOCKET_OPTION_NUM_RX_PINGS = 7,
 M2MB_WEBSOCKET_OPTION_NUM_TX_PINGS = 8,
 M2MB_WEBSOCKET_OPTION_NUM_RX_PONGS = 9,
 M2MB_WEBSOCKET_OPTION_NUM_TX_PONGS = 10
 }
 | 
|  | Websocket options that can be read using m2mb_websocketc_get_opt API.  More... 
 | 
|  | 
| enum | M2MB_WEBSOCKET_DATA_TYPE_E { M2MB_WEBSOCKET_DATA_TYPE_TEXT_E = 1,
 M2MB_WEBSOCKET_DATA_TYPE_BINARY_E = 2
 }
 | 
|  | Type of data sent or received on websocket.  More... 
 | 
|  | 
| enum | M2MB_WEBSOCKET_EVENT_E { M2MB_WEBSOCKET_EVENT_CONNECT_E = 1,
 M2MB_WEBSOCKET_EVENT_MESSAGE_E = 2,
 M2MB_WEBSOCKET_EVENT_PONG_E = 3,
 M2MB_WEBSOCKET_EVENT_CLOSE_E = 4
 }
 | 
|  | Websocket event type. Provided to M2MB_Event_CB_t callback.  More... 
 | 
|  | 
| enum | M2MB_WEBSOCKET_CLOSE_STATUS_E { M2MB_WEBSOCKET_CLOSE_STATUS_NORMAL = 1000,
 M2MB_WEBSOCKET_CLOSE_STATUS_GOING_AWAY = 1001,
 M2MB_WEBSOCKET_CLOSE_STATUS_PROTOCOL_ERROR = 1002,
 M2MB_WEBSOCKET_CLOSE_STATUS_UNSUPPORTED_MESSAGE_TYPE = 1003,
 M2MB_WEBSOCKET_CLOSE_STATUS_NO_STATUS_RECEIVED = 1005,
 M2MB_WEBSOCKET_CLOSE_STATUS_ABNORMAL_CLOSURE = 1006,
 M2MB_WEBSOCKET_CLOSE_STATUS_DATA_DOES_NOT_MATCH_MESSAGE_TYPE = 1007,
 M2MB_WEBSOCKET_CLOSE_STATUS_POLICY_VIOLATION = 1008,
 M2MB_WEBSOCKET_CLOSE_STATUS_MESSAGE_TOO_BIG = 1009,
 M2MB_WEBSOCKET_CLOSE_STATUS_EXPECTED_EXTENSION = 1010,
 M2MB_WEBSOCKET_CLOSE_STATUS_UNEXPECTED_CONDITION = 1011
 }
 | 
|  | Connection close status.  More... 
 | 
|  | 
| enum | M2MB_WEBSOCKET_CONF_ID_E { M2MB_WEBSOCKET_CONF_ECHOMODE,
 M2MB_WEBSOCKET_CONF_HTTPHEADERS_ADD,
 M2MB_WEBSOCKET_CONF_HTTPHEADERS_CLEAR
 }
 | 
|  | Client configuration parameters. For use with m2mb_websocketc_new.  More... 
 | 
|  | 
| typedef UINT32 | M2MB_WEBSOCKET_HANDLE_T | 
|  | Handle to websocket context.  More... 
 | 
|  | 
| typedef struct M2MB_WEBSOCKET_CTX | M2MB_WEBSOCKET_CTX_T | 
|  | websocket client context used with every websocket API.  More... 
 | 
|  | 
| typedef struct M2MB_WEBSOCKET_EVENT_INFO | M2MB_WEBSOCKET_EVENT_INFO_T | 
|  | Websocket event. Received by M2MB_WEBSOCKETC_EVENT_CB_T callback registered with m2mb_websocketc_new API.  More... 
 | 
|  | 
| typedef void(* | M2MB_WEBSOCKETC_EVENT_CB_T) (M2MB_WEBSOCKET_HANDLE_T handle, void *arg, M2MB_WEBSOCKET_EVENT_E event, M2MB_WEBSOCKET_EVENT_INFO_T *event_Info) | 
|  | Callback to receive new websocket messages.  More... 
 | 
|  | 
| typedef UINT32 | M2MB_SSL_OBJ_HDL_T | 
|  | 
| typedef struct M2MB_WEBSOCKET_OPEN_PARAMS | M2MB_WEBSOCKET_OPEN_PARAMS_T | 
|  | Client configuration parameters. For use with m2mb_websocketc_new.  More... 
 | 
|  | 
| typedef union M2MB_WEBSOCKET_CONF_PARAMS | M2MB_WEBSOCKET_CFG_PARAMS_T | 
|  | Client configuration parameters. For use with m2mb_websocket_cfg.  More... 
 | 
|  | 
| M2MB_STATUS_T | m2mb_websocket_open (M2MB_WEBSOCKET_CTX_T **pCtx, M2MB_WEBSOCKET_OPEN_PARAMS_T *pParams) | 
|  | Create a client websocket context.  More... 
 | 
|  | 
| M2MB_STATUS_T | m2mb_websocket_close (M2MB_WEBSOCKET_CTX_T *pCtx) | 
|  | Closes the websocket connection.  More... 
 | 
|  | 
| M2MB_STATUS_T | m2mb_websocket_connect (M2MB_WEBSOCKET_CTX_T *pCtx, INT8 *p_server, UINT16 port, char *pResource_path) | 
|  | Establishes a websocket connection.  More... 
 | 
|  | 
| M2MB_STATUS_T | m2mb_websocket_cfg (M2MB_WEBSOCKET_CTX_T *pCtx, M2MB_WEBSOCKET_CONF_ID_E confid, M2MB_WEBSOCKET_CFG_PARAMS_T *cfg) | 
|  | Enables or disables echo mode.  More... 
 | 
|  | 
| int | m2mb_websocket_send (M2MB_WEBSOCKET_CTX_T *pCtx, char *pMsg, UINT32 msglen, M2MB_WEBSOCKET_DATA_TYPE_E datatype, UINT8 end_of_message) | 
|  | Sends application data.  More... 
 | 
|  | 
| M2MB_STATUS_T | m2mb_websocket_ping (M2MB_WEBSOCKET_CTX_T *pCtx, char *pPing_data, UINT32 ping_data_length) | 
|  | Send a websocket ping.  More... 
 | 
|  | 
| M2MB_STATUS_T | m2mb_websocket_pong (M2MB_WEBSOCKET_CTX_T *pCtx, char *pPong_data, UINT32 pong_data_length) | 
|  | Send a websocket pong.  More... 
 | 
|  | 
| M2MB_STATUS_T | m2mb_websocket_get_opt (M2MB_WEBSOCKET_CTX_T *pCtx, M2MB_WEBSOCKET_OPTION_E opt, void *opt_Value, UINT32 *opt_Length) | 
|  | Get properties of the websocket.  More... 
 | 
|  | 
This file provides API's for websocket client. 
we866e4/epl/inc/nwk/m2mb_websocket.h
The Websocket client provides methods to establish a Websocket client(doesn't support server) connection, send and receive message, to send pings or one-way pongs, or receive pongs. Due to limited memory, large messages are received in chunks to the registered event callback. The size of the chunk is controlled by the max_Recv_Chunk_Size configuration parameter. When the end of the message is reached, the end_Of_Message callback parameter is set to TRUE. Note that the Websocket client does not validate text data as valid UTF-8 for either send or receive. The application must valid this if required.
- Note
- Dependencies: "#include <m2mb_types.h>" 
 "#include <m2mb_socket.h>"
- Author
- Prasad Reddy
- Date
- 08/08/2018 
Definition in file m2mb_websocket.h.