Skip to content

Commit d5b0364

Browse files
committed
allow override of CB handling
see Links2004#14
1 parent 187a4ac commit d5b0364

File tree

4 files changed

+35
-18
lines changed

4 files changed

+35
-18
lines changed

src/WebSocketsClient.cpp

+5-9
Original file line numberDiff line numberDiff line change
@@ -180,9 +180,8 @@ void WebSocketsClient::messageRecived(WSclient_t * client, WSopcode_t opcode, ui
180180
break;
181181
}
182182

183-
if(_cbEvent) {
184-
_cbEvent(type, payload, lenght);
185-
}
183+
runCbEvent(type, payload, lenght);
184+
186185
}
187186

188187
/**
@@ -208,9 +207,8 @@ void WebSocketsClient::clientDisconnect(WSclient_t * client) {
208207

209208
DEBUG_WEBSOCKETS("[WS-Client] client disconnected.\n");
210209

211-
if(_cbEvent) {
212-
_cbEvent(WStype_DISCONNECTED, NULL, 0);
213-
}
210+
runCbEvent(WStype_DISCONNECTED, NULL, 0);
211+
214212
}
215213

216214
/**
@@ -386,9 +384,7 @@ void WebSocketsClient::handleHeader(WSclient_t * client) {
386384

387385
client->status = WSC_CONNECTED;
388386

389-
if(_cbEvent) {
390-
_cbEvent(WStype_CONNECTED, (uint8_t *) client->cUrl.c_str(), client->cUrl.length());
391-
}
387+
runCbEvent(WStype_CONNECTED, (uint8_t *) client->cUrl.c_str(), client->cUrl.length());
392388

393389
} else {
394390
DEBUG_WEBSOCKETS("[WS-Client][handleHeader] no Websocket connection close.\n");

src/WebSocketsClient.h

+12
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,18 @@ class WebSocketsClient: private WebSockets {
8484
void sendHeader(WSclient_t * client);
8585
void handleHeader(WSclient_t * client);
8686

87+
/**
88+
* called for sending a Event to the app
89+
* @param type WStype_t
90+
* @param payload uint8_t *
91+
* @param length size_t
92+
*/
93+
virtual void runCbEvent(WStype_t type, uint8_t * payload, size_t length) {
94+
if(_cbEvent) {
95+
_cbEvent(type, payload, length);
96+
}
97+
}
98+
8799
};
88100

89101
#endif /* WEBSOCKETSCLIENT_H_ */

src/WebSocketsServer.cpp

+5-9
Original file line numberDiff line numberDiff line change
@@ -265,9 +265,8 @@ void WebSocketsServer::messageRecived(WSclient_t * client, WSopcode_t opcode, ui
265265
break;
266266
}
267267

268-
if(_cbEvent) {
269-
_cbEvent(client->num, type, payload, lenght);
270-
}
268+
runCbEvent(client->num, type, payload, lenght);
269+
271270
}
272271

273272
/**
@@ -292,9 +291,8 @@ void WebSocketsServer::clientDisconnect(WSclient_t * client) {
292291

293292
DEBUG_WEBSOCKETS("[WS-Server][%d] client disconnected.\n", client->num);
294293

295-
if(_cbEvent) {
296-
_cbEvent(client->num, WStype_DISCONNECTED, NULL, 0);
297-
}
294+
runCbEvent(client->num, WStype_DISCONNECTED, NULL, 0);
295+
298296
}
299297

300298
/**
@@ -488,9 +486,7 @@ void WebSocketsServer::handleHeader(WSclient_t * client) {
488486
// send ping
489487
WebSockets::sendFrame(client, WSop_ping);
490488

491-
if(_cbEvent) {
492-
_cbEvent(client->num, WStype_CONNECTED, (uint8_t *) client->cUrl.c_str(), client->cUrl.length());
493-
}
489+
runCbEvent(client->num, WStype_CONNECTED, (uint8_t *) client->cUrl.c_str(), client->cUrl.length());
494490

495491
} else {
496492
handleNonWebsocketConnection(client);

src/WebSocketsServer.h

+13
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,19 @@ class WebSocketsServer: private WebSockets {
126126
clientDisconnect(client);
127127
}
128128

129+
/**
130+
* called for sending a Event to the app
131+
* @param num uint8_t
132+
* @param type WStype_t
133+
* @param payload uint8_t *
134+
* @param length size_t
135+
*/
136+
virtual void runCbEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t length) {
137+
if(_cbEvent) {
138+
_cbEvent(num, type, payload, length);
139+
}
140+
}
141+
129142
};
130143

131144

0 commit comments

Comments
 (0)