WL865E4-P  36.07.001
m2mb_websocket.h
Go to the documentation of this file.
1 /*===============================================================================================*/
2 /* >>> Copyright (C) Telit Communications S.p.A. Italy All Rights Reserved. <<< */
30 /* Global declarations ==========================================================================*/
31 #ifndef M2MB_WEBSOCKET_H
32 #define M2MB_WEBSOCKET_H
33 
48 /*-----------------------------------------------------------------------------------------------*/
49 
50 #define WEBSOCKETC_MAX_CLIENTS (4)
52 #define WEBSOCKET_MAX_SUBPROTOCOLS (4)
54 /* Global typedefs ==============================================================================*/
55 
58 typedef enum {
65 
69 typedef enum {
81 
85 typedef enum {
89 
93 typedef enum {
97 
101 typedef enum {
107 
111 typedef enum {
124 
129 
135 {
139  const void *data;
157  const char *subprotocol;
161 
165 typedef void (* M2MB_WEBSOCKETC_EVENT_CB_T)(
166  M2MB_WEBSOCKET_HDL_T handle,
169  void * arg,
175  M2MB_WEBSOCKET_EVENT_INFO_T *event_Info
177  );
184 
189 {
190  const char *origin;
213 
217  typedef struct M2MB_WEBSOCKETC_CTX{
223 
224 /* Global variables =============================================================================*/
225 
226 /* Global functions =============================================================================*/
227 /*-----------------------------------------------------------------------------------------------*/
276  M2MB_SSL_CTXT_HANDLE sslhandle) ;
277 /*-----------------------------------------------------------------------------------------------*/
331  INT8 *p_server, UINT16 port, char *pResource_path ) ;
332 /*-----------------------------------------------------------------------------------------------*/
382 /*-----------------------------------------------------------------------------------------------*/
437 /*-----------------------------------------------------------------------------------------------*/
511 int m2mb_websocketc_send(M2MB_WEBSOCKETC_CTX_T *pClientCtx, char *pMsg,UINT32 msglen,
512  M2MB_WEBSOCKET_DATA_TYPE_E datatype, UINT8 end_of_message) ;
513 /*-----------------------------------------------------------------------------------------------*/
582 M2MB_STATUS_T m2mb_websocketc_ping( M2MB_WEBSOCKETC_CTX_T *pClientCtx, char *pPing_data,
583  UINT32 ping_data_length) ;
584 /*-----------------------------------------------------------------------------------------------*/
648 M2MB_STATUS_T m2mb_websocketc_pong( M2MB_WEBSOCKETC_CTX_T *pClientCtx, char *pPong_data,
649  UINT32 pong_data_length);
650 /*-----------------------------------------------------------------------------------------------*/
704  char *hdr1, char *hdr2);
705 /*-----------------------------------------------------------------------------------------------*/
760 /*-----------------------------------------------------------------------------------------------*/
820  M2MB_WEBSOCKET_OPTION_E opt, void *opt_Value, UINT32 *opt_Length);
821 
823 #endif /* M2MB_WEBSOCKET_H */
unsigned char UINT8
Definition: m2mb_types.h:83
M2MB_STATUS_T m2mb_websocketc_ping(M2MB_WEBSOCKETC_CTX_T *pClientCtx, char *pPing_data, UINT32 ping_data_length)
Send a websocket ping.
M2MB_STATUS_T m2mb_websocketc_addhttpheader(M2MB_WEBSOCKETC_CTX_T *pClientCtx, char *hdr1, char *hdr2)
Adds an HTTP header to the websocket created.
M2MB_STATUS_T m2mb_websocketc_close(M2MB_WEBSOCKETC_CTX_T *pClientCtx)
Closes the websocket connection.
M2MB_WEBSOCKET_CLOSE_STATUS_E
Connection close status.
INT32 M2MB_STATUS_T
Definition: m2mb_status.h:95
M2MB_WEBSOCKET_STATE_E
The state of the websocket.
HANDLE M2MB_SSL_CTXT_HANDLE
SSL context handle. This is obtained from m2mb_ssl_create_ctxt API and then used in subsequent SSL ...
Definition: m2mb_ssl.h:107
struct M2MB_WEBSOCKET_CLIENT_CONFIG M2MB_WEBSOCKET_CLIENT_CONFIG_T
Client configuration parameters. For use with m2mb_websocketc_new.
M2MB_WEBSOCKET_EVENT_E
Websocket event type. Provided to M2MB_Event_CB_t callback.
signed char INT8
Definition: m2mb_types.h:78
M2MB_STATUS_T m2mb_websocketc_pong(M2MB_WEBSOCKETC_CTX_T *pClientCtx, char *pPong_data, UINT32 pong_data_length)
Send a websocket pong.
M2MB_WEBSOCKET_OPTION_E
Websocket options that can be read using m2mb_websocketc_get_opt API.
unsigned short UINT16
Definition: m2mb_types.h:84
M2MB_WEBSOCKET_MODE_E
Client or server.
unsigned long int UINT32
Definition: m2mb_types.h:85
M2MB_SSL_OBJ_HDL_T ssl_Object_Handle
Websocket event. Received by M2MB_WEBSOCKETC_EVENT_CB_T callback registered with m2mb_websocketc_new ...
UINT8 BOOLEAN
Definition: m2mb_types.h:92
M2MB_WEBSOCKET_HDL_T websocket_handle
M2MB_WEBSOCKET_DATA_TYPE_E data_Type
M2MB_STATUS_T m2mb_websocketc_echo(M2MB_WEBSOCKETC_CTX_T *pClientCtx, BOOLEAN echo_mode)
Enables or disables echo mode.
M2MB_STATUS_T m2mb_websocketc_resethttpheaders(M2MB_WEBSOCKETC_CTX_T *pClientCtx)
Clear HTTP header fields.
UINT32 M2MB_WEBSOCKET_HDL_T
Handle to websocket context.
int m2mb_websocketc_send(M2MB_WEBSOCKETC_CTX_T *pClientCtx, char *pMsg, UINT32 msglen, M2MB_WEBSOCKET_DATA_TYPE_E datatype, UINT8 end_of_message)
Sends application data.
M2MB_WEBSOCKET_CLOSE_STATUS_E close_Status_Code
websocket client context used with every websocket API.
M2MB_STATUS_T m2mb_websocketc_get_opt(M2MB_WEBSOCKETC_CTX_T *pClientCtx, M2MB_WEBSOCKET_OPTION_E opt, void *opt_Value, UINT32 *opt_Length)
Get properties of the websocket.
struct M2MB_WEBSOCKETC_CTX M2MB_WEBSOCKETC_CTX_T
websocket client context used with every websocket API.
M2MB_WEBSOCKET_DATA_TYPE_E
Type of data sent or received on websocket.
UINT32 M2MB_SSL_OBJ_HDL_T
M2MB_STATUS_T m2mb_websocketc_new(M2MB_WEBSOCKETC_CTX_T *pClientCtx, M2MB_WEBSOCKET_CLIENT_CONFIG_T *pConfig, M2MB_WEBSOCKETC_EVENT_CB_T *pUsercb, M2MB_SSL_CTXT_HANDLE sslhandle)
Create a client websocket context.
Client configuration parameters. For use with m2mb_websocketc_new.
M2MB_STATUS_T m2mb_websocketc_connect(M2MB_WEBSOCKETC_CTX_T *pClientCtx, INT8 *p_server, UINT16 port, char *pResource_path)
Establishes a websocket connection.
void(* M2MB_WEBSOCKETC_EVENT_CB_T)(M2MB_WEBSOCKET_HDL_T handle, void *arg, M2MB_WEBSOCKET_EVENT_E event, M2MB_WEBSOCKET_EVENT_INFO_T *event_Info)
Callback to receive new websocket messages.
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 ...