1.7.3.21 SYS_WSS_register_callback Function

C

SYS_WSS_RESULT SYS_WSS_register_callback(SYS_WSS_CALLBACK userCallback, void* cookie)

Summary

API for registering the application callback function with the WSS service.

Description

Callback functions may be registered by clients of the WSS service during the initialization using this API.

Precondition

None.

Parameters

ParamDescription
userCallbackA function pointer to the application call back API.
eventData (if any) related to the Event
cookieA context value, returned untouched to the client when the callback occurs.

Returns

SYS_WSS_RESULT.

Example

void wss_user_callback(SYS_WSS_EVENTS event, void *data, int32_t clientIndex, void *cookie) {
    
    int i = 0;
    switch (event) {
        
        case SYS_WSS_EVENT_CLIENT_CONNECTING:
        {
            SYS_CONSOLE_PRINT("wssSysServCallback(%d): SYS_WSS_EVENT_CLIENT_CONNECTING\r\n",clientIndex);
            break;
        }
        case SYS_WSS_EVENT_CLIENT_CONNECTED:
        {
            
            SYS_CONSOLE_PRINT("wssSysServCallback(%d): SYS_WSS_EVENT_CLIENT_CONNECTED\r\n",clientIndex);
            
            break;
        }
        case SYS_WSS_EVENT_CLIENT_BIN_DATA_RX:
        {
            SYS_CONSOLE_PRINT("wssSysServCallback(%d): SYS_WSS_EVENT_CLIENT_BIN_DATA_RX\r\n",clientIndex);
            for (i = 0; i < ((SYS_WSS_RXDATA*) data)->datalen; i++) {
                SYS_CONSOLE_PRINT("%X ", ((SYS_WSS_RXDATA*) data)->data[i]);
            }
            SYS_CONSOLE_PRINT("\r\n");
            //echo server.
            SYS_WSS_sendMessage(1, SYS_WSS_FRAME_TEXT, ((SYS_WSS_RXDATA*) data)->data, ((SYS_WSS_RXDATA *) data)->datalen, clientIndex);
            break;
        }
        case SYS_WSS_EVENT_CLIENT_TXT_DATA_RX:
        {
            
            SYS_CONSOLE_PRINT("wssSysServCallback(%d): SYS_WSS_EVENT_CLIENT_TXT_DATA_RX\r\n",clientIndex);
            for (i = 0; i < ((SYS_WSS_RXDATA *) data)->datalen; i++) {
                SYS_CONSOLE_PRINT("%c", ((SYS_WSS_RXDATA*) data)->data[i]);
            }
            SYS_CONSOLE_PRINT("\r\n");
            // Enable the below statement for echo server
            //SYS_WSS_sendMessage(1, SYS_WSS_FRAME_TEXT, ((SYS_WSS_RXDATA*) data)->data, ((SYS_WSS_RXDATA *) data)->datalen, clientIndex);
            
            break;
        }
        case SYS_WSS_EVENT_CLIENT_CLOSING:
        {
            SYS_CONSOLE_PRINT("wssSysServCallback(%d): SYS_WSS_EVENT_CLIENT_CLOSING\r\n",clientIndex);
            break;
        }
        case SYS_WSS_EVENT_CLIENT_CLOSED:
        {
            SYS_CONSOLE_PRINT("wssSysServCallback(%d): SYS_WSS_EVENT_CLIENT_CLOSED\r\n",clientIndex);
            break;
        }
        case SYS_WSS_EVENT_ERR_INVALID_FRAME:
        {
            SYS_CONSOLE_PRINT("wssSysServCallback(%d): SYS_WSS_EVENT_ERR_INVALID_FRAME\r\n",clientIndex);
            break;
        }
        case SYS_WSS_EVENT_CLIENT_PING_RX:
        {
            SYS_CONSOLE_PRINT("wssSysServCallback(%d): SYS_WSS_EVENT_CLIENT_PING_RX\r\n",clientIndex);
            break;
        }
        case SYS_WSS_EVENT_CLIENT_PONG_RX:
        {
            SYS_CONSOLE_PRINT("wssSysServCallback(%d): SYS_WSS_EVENT_CLIENT_PONG_RX\r\n",clientIndex);
            break;
        }
        case SYS_WSS_EVENT_CLIENT_CLOSE_FRAME_RX:
        {
            SYS_CONSOLE_PRINT("wssSysServCallback(%d): SYS_WSS_EVENT_CLIENT_CLOSE_FRAME_RX\r\n",clientIndex);
            break;
        }
        case SYS_WSS_EVENT_ERR:
        {
            SYS_CONSOLE_PRINT("wssSysServCallback(%d): SYS_WSS_EVENT_ERR\r\n",clientIndex);
            break;
        }
        case SYS_WSS_EVENT_DOWN:
        {
            SYS_CONSOLE_PRINT("wssSysServCallback(%d): SYS_WSS_EVENT_DOWN\r\n",clientIndex);
            break;
        }
        case SYS_WSS_EVENT_CLIENT_TIMEOUT:
        {
            SYS_CONSOLE_PRINT("wssSysServCallback(%d): SYS_WSS_EVENT_CLIENT_TIMEOUT\r\n",clientIndex);
            break;
        }
    }
}

Remarks

None.