8000 async client working · PorterK/arduinoWebSockets@76853c7 · GitHub
[go: up one dir, main page]

Skip to content

Commit 76853c7

Browse files
committed
async client working
1 parent 1275914 commit 76853c7

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

src/WebSockets.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@
5454

5555
// select Network type based
5656
#ifdef ESP8266
57-
//#define WEBSOCKETS_NETWORK_TYPE NETWORK_ESP8266
58-
#define WEBSOCKETS_NETWORK_TYPE NETWORK_ESP8266_ASYNC
57+
#define WEBSOCKETS_NETWORK_TYPE NETWORK_ESP8266
58+
//#define WEBSOCKETS_NETWORK_TYPE NETWORK_ESP8266_ASYNC
5959
#else
6060
#define WEBSOCKETS_NETWORK_TYPE NETWORK_W5100
6161
#endif

src/WebSocketsClient.cpp

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,9 @@ void WebSocketsClient::begin(const char *host, uint16_t port, const char * url)
6767
// todo find better seed
6868
randomSeed(millis());
6969
#endif
70-
70+
#if (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266_ASYNC)
7171
asyncConnect();
72+
#endif
7273
}
7374

7475
void WebSocketsClient::begin(String host, uint16_t port, String url) {
@@ -504,7 +505,7 @@ void WebSocketsClient::connectedCb() {
504505
client->tcp = NULL;
505506

506507
// reconnect
507-
// c->asyncConnect();
508+
c->asyncConnect();
508509

509510
return true;
510511
}, this, std::placeholders::_1, &_client));
@@ -543,18 +544,24 @@ void WebSocketsClient::connectFailedCb() {
543544

544545
void WebSocketsClient::asyncConnect() {
545546

546-
AsyncClient * tcpclient = new AsyncClient();
547+
DEBUG_WEBSOCKETS("[WS-Client] asyncConnect...\n");
547548

549+
AsyncClient * tcpclient = new AsyncClient();
548550

549551
if(!tcpclient) {
550-
DEBUG_WEBSOCKETS("[WS-Client] creating AsyncClient class failed!");
552+
DEBUG_WEBSOCKETS("[WS-Client] creating AsyncClient class failed!\n");
551553
return;
552554
}
553555

556+
tcpclient->onDisconnect([](void *obj, AsyncClient* c) {
557+
c->free();
558+
delete c;
559+
});
560+
554561
tcpclient->onConnect(std::bind([](WebSocketsClient * ws , AsyncClient * tcp) {
555562
ws->_client.tcp = new AsyncTCPbuffer(tcp);
556563
if(!ws->_client.tcp) {
557-
DEBUG_WEBSOCKETS("[WS-Client] creating Network class failed!");
564+
DEBUG_WEBSOCKETS("[WS-Client] creating Network class failed!\n");
558565
ws->connectFailedCb();
559566
return;
560567
}

0 commit comments

Comments
 (0)
0