| 674 | } |
| 675 | |
| 676 | void WebSocketsClient::connectedCb() { |
| 677 | |
| 678 | DEBUG_WEBSOCKETS("[WS-Client] connected to %s:%u.\n", _host.c_str(), _port); |
| 679 | |
| 680 | #if (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266_ASYNC) |
| 681 | _client.tcp->onDisconnect(std::bind([](WebSocketsClient * c, AsyncTCPbuffer * obj, WSclient_t * client) -> bool { |
| 682 | DEBUG_WEBSOCKETS("[WS-Server][%d] Disconnect client\n", client->num); |
| 683 | client->status = WSC_NOT_CONNECTED; |
| 684 | client->tcp = NULL; |
| 685 | |
| 686 | // reconnect |
| 687 | c->asyncConnect(); |
| 688 | |
| 689 | return true; |
| 690 | }, this, std::placeholders::_1, &_client)); |
| 691 | #endif |
| 692 | |
| 693 | _client.status = WSC_HEADER; |
| 694 | |
| 695 | #if (WEBSOCKETS_NETWORK_TYPE != NETWORK_ESP8266_ASYNC) |
| 696 | // set Timeout for readBytesUntil and readStringUntil |
| 697 | _client.tcp->setTimeout(WEBSOCKETS_TCP_TIMEOUT); |
| 698 | #endif |
| 699 | |
| 700 | #if (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266) |
| 701 | _client.tcp->setNoDelay(true); |
| 702 | |
| 703 | if(_client.isSSL && _fingerprint.length()) { |
| 704 | if(!_client.ssl->verify(_fingerprint.c_str(), _host.c_str())) { |
| 705 | DEBUG_WEBSOCKETS("[WS-Client] certificate mismatch\n"); |
| 706 | WebSockets::clientDisconnect(&_client, 1000); |
| 707 | return; |
| 708 | } |
| 709 | } |
| 710 | #endif |
| 711 | |
| 712 | // send Header to Server |
| 713 | sendHeader(&_client); |
| 714 | |
| 715 | } |
| 716 | |
| 717 | void WebSocketsClient::connectFailedCb() { |
| 718 | DEBUG_WEBSOCKETS("[WS-Client] connection to %s:%u Faild\n", _host.c_str(), _port); |
no test coverage detected