WE310F5  39.00.000
m2mb_websocket.h File Reference

This file provides API's for websocket client. More...

Go to the source code of this file.

Data Structures

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...
 

Detailed Description

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.