MCPcopy Create free account
hub / github.com/blinker-iot/blinker-library / handleClientData

Method handleClientData

src/modules/WebSockets/WebSocketsClient.cpp:558–588  ·  view source on GitHub ↗

* Handel incomming data from Client */

Source from the content-addressed store, hash-verified

556 * Handel incomming data from Client
557 */
558void WebSocketsClient::handleClientData(void) {
559 if((_client.status == WSC_HEADER || _client.status == WSC_BODY) && _lastHeaderSent + WEBSOCKETS_TCP_TIMEOUT < millis()) {
560 DEBUG_WEBSOCKETS("[WS-Client][handleClientData] header response timeout.. disconnecting!\n");
561 clientDisconnect(&_client);
562 WEBSOCKETS_YIELD();
563 return;
564 }
565
566 int len = _client.tcp->available();
567 if(len > 0) {
568 switch(_client.status) {
569 case WSC_HEADER: {
570 String headerLine = _client.tcp->readStringUntil('\n');
571 handleHeader(&_client, &headerLine);
572 } break;
573 case WSC_BODY: {
574 char buf[256] = { 0 };
575 _client.tcp->readBytes(&buf[0], std::min((size_t)len, sizeof(buf)));
576 String bodyLine = buf;
577 handleHeader(&_client, &bodyLine);
578 } break;
579 case WSC_CONNECTED:
580 WebSockets::handleWebsocket(&_client);
581 break;
582 default:
583 WebSockets::clientDisconnect(&_client, 1002);
584 break;
585 }
586 }
587 WEBSOCKETS_YIELD();
588}
589#endif
590
591/**

Callers

nothing calls this directly

Calls 3

readStringUntilMethod · 0.80
availableMethod · 0.45
readBytesMethod · 0.45

Tested by

no test coverage detected