allow override of CB handling

see #14
This commit is contained in:
Markus Sattler
2015-10-31 11:37:07 +01:00
parent 187a4ac823
commit d5b0364f5c
4 changed files with 35 additions and 18 deletions

View File

@ -180,9 +180,8 @@ void WebSocketsClient::messageRecived(WSclient_t * client, WSopcode_t opcode, ui
break; break;
} }
if(_cbEvent) { runCbEvent(type, payload, lenght);
_cbEvent(type, payload, lenght);
}
} }
/** /**
@ -208,9 +207,8 @@ void WebSocketsClient::clientDisconnect(WSclient_t * client) {
DEBUG_WEBSOCKETS("[WS-Client] client disconnected.\n"); DEBUG_WEBSOCKETS("[WS-Client] client disconnected.\n");
if(_cbEvent) { runCbEvent(WStype_DISCONNECTED, NULL, 0);
_cbEvent(WStype_DISCONNECTED, NULL, 0);
}
} }
/** /**
@ -386,9 +384,7 @@ void WebSocketsClient::handleHeader(WSclient_t * client) {
client->status = WSC_CONNECTED; client->status = WSC_CONNECTED;
if(_cbEvent) { runCbEvent(WStype_CONNECTED, (uint8_t *) client->cUrl.c_str(), client->cUrl.length());
_cbEvent(WStype_CONNECTED, (uint8_t *) client->cUrl.c_str(), client->cUrl.length());
}
} else { } else {
DEBUG_WEBSOCKETS("[WS-Client][handleHeader] no Websocket connection close.\n"); DEBUG_WEBSOCKETS("[WS-Client][handleHeader] no Websocket connection close.\n");

View File

@ -84,6 +84,18 @@ class WebSocketsClient: private WebSockets {
void sendHeader(WSclient_t * client); void sendHeader(WSclient_t * client);
void handleHeader(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_ */ #endif /* WEBSOCKETSCLIENT_H_ */

View File

@ -265,9 +265,8 @@ void WebSocketsServer::messageRecived(WSclient_t * client, WSopcode_t opcode, ui
break; break;
} }
if(_cbEvent) { runCbEvent(client->num, type, payload, lenght);
_cbEvent(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); DEBUG_WEBSOCKETS("[WS-Server][%d] client disconnected.\n", client->num);
if(_cbEvent) { runCbEvent(client->num, WStype_DISCONNECTED, NULL, 0);
_cbEvent(client->num, WStype_DISCONNECTED, NULL, 0);
}
} }
/** /**
@ -488,9 +486,7 @@ void WebSocketsServer::handleHeader(WSclient_t * client) {
// send ping // send ping
WebSockets::sendFrame(client, WSop_ping); WebSockets::sendFrame(client, WSop_ping);
if(_cbEvent) { runCbEvent(client->num, WStype_CONNECTED, (uint8_t *) client->cUrl.c_str(), client->cUrl.length());
_cbEvent(client->num, WStype_CONNECTED, (uint8_t *) client->cUrl.c_str(), client->cUrl.length());
}
} else { } else {
handleNonWebsocketConnection(client); handleNonWebsocketConnection(client);

View File

@ -126,6 +126,19 @@ protected:
clientDisconnect(client); 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);
}
}
}; };