diff --git a/src/WebSocketsClient.cpp b/src/WebSocketsClient.cpp index c8a6132..dac1308 100644 --- a/src/WebSocketsClient.cpp +++ b/src/WebSocketsClient.cpp @@ -180,9 +180,8 @@ void WebSocketsClient::messageRecived(WSclient_t * client, WSopcode_t opcode, ui break; } - if(_cbEvent) { - _cbEvent(type, payload, lenght); - } + runCbEvent(type, payload, lenght); + } /** @@ -208,9 +207,8 @@ void WebSocketsClient::clientDisconnect(WSclient_t * client) { DEBUG_WEBSOCKETS("[WS-Client] client disconnected.\n"); - if(_cbEvent) { - _cbEvent(WStype_DISCONNECTED, NULL, 0); - } + runCbEvent(WStype_DISCONNECTED, NULL, 0); + } /** @@ -386,9 +384,7 @@ void WebSocketsClient::handleHeader(WSclient_t * client) { client->status = WSC_CONNECTED; - if(_cbEvent) { - _cbEvent(WStype_CONNECTED, (uint8_t *) client->cUrl.c_str(), client->cUrl.length()); - } + runCbEvent(WStype_CONNECTED, (uint8_t *) client->cUrl.c_str(), client->cUrl.length()); } else { DEBUG_WEBSOCKETS("[WS-Client][handleHeader] no Websocket connection close.\n"); diff --git a/src/WebSocketsClient.h b/src/WebSocketsClient.h index 75b2567..f590edc 100644 --- a/src/WebSocketsClient.h +++ b/src/WebSocketsClient.h @@ -84,6 +84,18 @@ class WebSocketsClient: private WebSockets { void sendHeader(WSclient_t * client); void handleHeader(WSclient_t * client); + /** + * called for sending a Event to the app + * @param type WStype_t + * @param payload uint8_t * + * @param length size_t + */ + virtual void runCbEvent(WStype_t type, uint8_t * payload, size_t length) { + if(_cbEvent) { + _cbEvent(type, payload, length); + } + } + }; #endif /* WEBSOCKETSCLIENT_H_ */ diff --git a/src/WebSocketsServer.cpp b/src/WebSocketsServer.cpp index 725c60a..0982b35 100644 --- a/src/WebSocketsServer.cpp +++ b/src/WebSocketsServer.cpp @@ -265,9 +265,8 @@ void WebSocketsServer::messageRecived(WSclient_t * client, WSopcode_t opcode, ui break; } - if(_cbEvent) { - _cbEvent(client->num, type, payload, lenght); - } + runCbEvent(client->num, type, payload, lenght); + } /** @@ -292,9 +291,8 @@ void WebSocketsServer::clientDisconnect(WSclient_t * client) { DEBUG_WEBSOCKETS("[WS-Server][%d] client disconnected.\n", client->num); - if(_cbEvent) { - _cbEvent(client->num, WStype_DISCONNECTED, NULL, 0); - } + runCbEvent(client->num, WStype_DISCONNECTED, NULL, 0); + } /** @@ -488,9 +486,7 @@ void WebSocketsServer::handleHeader(WSclient_t * client) { // send ping WebSockets::sendFrame(client, WSop_ping); - if(_cbEvent) { - _cbEvent(client->num, WStype_CONNECTED, (uint8_t *) client->cUrl.c_str(), client->cUrl.length()); - } + runCbEvent(client->num, WStype_CONNECTED, (uint8_t *) client->cUrl.c_str(), client->cUrl.length()); } else { handleNonWebsocketConnection(client); diff --git a/src/WebSocketsServer.h b/src/WebSocketsServer.h index 5d21197..86ad970 100644 --- a/src/WebSocketsServer.h +++ b/src/WebSocketsServer.h @@ -126,6 +126,19 @@ protected: clientDisconnect(client); } + /** + * called for sending a Event to the app + * @param num uint8_t + * @param type WStype_t + * @param payload uint8_t * + * @param length size_t + */ + virtual void runCbEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t length) { + if(_cbEvent) { + _cbEvent(num, type, payload, length); + } + } + };