mirror of
https://github.com/Links2004/arduinoWebSockets.git
synced 2025-07-16 16:52:05 +02:00
add new define for yield WEBSOCKETS_YIELD
This commit is contained in:
@ -623,12 +623,7 @@ bool WebSockets::readCb(WSclient_t * client, uint8_t * out, size_t n, WSreadWait
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!client->tcp->available()) {
|
if(!client->tcp->available()) {
|
||||||
#if(WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266)
|
WEBSOCKETS_YIELD();
|
||||||
delay(0);
|
|
||||||
#endif
|
|
||||||
#if(WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP32)
|
|
||||||
yield();
|
|
||||||
#endif
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -641,13 +636,12 @@ bool WebSockets::readCb(WSclient_t * client, uint8_t * out, size_t n, WSreadWait
|
|||||||
} else {
|
} else {
|
||||||
//DEBUG_WEBSOCKETS("Receive %d left %d!\n", len, n);
|
//DEBUG_WEBSOCKETS("Receive %d left %d!\n", len, n);
|
||||||
}
|
}
|
||||||
#if(WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266)
|
WEBSOCKETS_YIELD();
|
||||||
delay(0);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
if(cb) {
|
if(cb) {
|
||||||
cb(client, true);
|
cb(client, true);
|
||||||
}
|
}
|
||||||
|
WEBSOCKETS_YIELD();
|
||||||
#endif
|
#endif
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -694,10 +688,9 @@ size_t WebSockets::write(WSclient_t * client, uint8_t * out, size_t n) {
|
|||||||
} else {
|
} else {
|
||||||
//DEBUG_WEBSOCKETS("write %d failed left %d!\n", len, n);
|
//DEBUG_WEBSOCKETS("write %d failed left %d!\n", len, n);
|
||||||
}
|
}
|
||||||
#if(WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266)
|
WEBSOCKETS_YIELD();
|
||||||
delay(0);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
WEBSOCKETS_YIELD();
|
||||||
return total;
|
return total;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,11 +61,18 @@
|
|||||||
// moves all Header strings to Flash (~300 Byte)
|
// moves all Header strings to Flash (~300 Byte)
|
||||||
//#define WEBSOCKETS_SAVE_RAM
|
//#define WEBSOCKETS_SAVE_RAM
|
||||||
|
|
||||||
|
#if defined(ESP8266)
|
||||||
|
#define WEBSOCKETS_YIELD() delay(0)
|
||||||
|
#elif defined(ESP32)
|
||||||
|
#define WEBSOCKETS_YIELD() yield()
|
||||||
|
#endif
|
||||||
|
|
||||||
#elif defined(STM32_DEVICE)
|
#elif defined(STM32_DEVICE)
|
||||||
|
|
||||||
#define WEBSOCKETS_MAX_DATA_SIZE (15 * 1024)
|
#define WEBSOCKETS_MAX_DATA_SIZE (15 * 1024)
|
||||||
#define WEBSOCKETS_USE_BIG_MEM
|
#define WEBSOCKETS_USE_BIG_MEM
|
||||||
#define GET_FREE_HEAP System.freeMemory()
|
#define GET_FREE_HEAP System.freeMemory()
|
||||||
|
#define WEBSOCKETS_YIELD()
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
@ -73,6 +80,7 @@
|
|||||||
#define WEBSOCKETS_MAX_DATA_SIZE (1024)
|
#define WEBSOCKETS_MAX_DATA_SIZE (1024)
|
||||||
// moves all Header strings to Flash
|
// moves all Header strings to Flash
|
||||||
#define WEBSOCKETS_SAVE_RAM
|
#define WEBSOCKETS_SAVE_RAM
|
||||||
|
#define WEBSOCKETS_YIELD()
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -148,6 +148,7 @@ void WebSocketsClient::beginSocketIOSSLWithCA(const char * host, uint16_t port,
|
|||||||
* called in arduino loop
|
* called in arduino loop
|
||||||
*/
|
*/
|
||||||
void WebSocketsClient::loop(void) {
|
void WebSocketsClient::loop(void) {
|
||||||
|
WEBSOCKETS_YIELD();
|
||||||
if(!clientIsConnected(&_client)) {
|
if(!clientIsConnected(&_client)) {
|
||||||
// do not flood the server
|
// do not flood the server
|
||||||
if((millis() - _lastConnectionFail) < _reconnectInterval) {
|
if((millis() - _lastConnectionFail) < _reconnectInterval) {
|
||||||
@ -190,6 +191,7 @@ void WebSocketsClient::loop(void) {
|
|||||||
DEBUG_WEBSOCKETS("[WS-Client] creating Network class failed!");
|
DEBUG_WEBSOCKETS("[WS-Client] creating Network class failed!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
WEBSOCKETS_YIELD();
|
||||||
#if defined(ESP32)
|
#if defined(ESP32)
|
||||||
if(_client.tcp->connect(_host.c_str(), _port, WEBSOCKETS_TCP_TIMEOUT)) {
|
if(_client.tcp->connect(_host.c_str(), _port, WEBSOCKETS_TCP_TIMEOUT)) {
|
||||||
#else
|
#else
|
||||||
@ -203,7 +205,7 @@ void WebSocketsClient::loop(void) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
handleClientData();
|
handleClientData();
|
||||||
|
WEBSOCKETS_YIELD();
|
||||||
if(_client.status == WSC_CONNECTED) {
|
if(_client.status == WSC_CONNECTED) {
|
||||||
handleHBPing();
|
handleHBPing();
|
||||||
handleHBTimeout(&_client);
|
handleHBTimeout(&_client);
|
||||||
@ -498,9 +500,7 @@ void WebSocketsClient::handleClientData(void) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if(WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266) || (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP32)
|
WEBSOCKETS_YIELD();
|
||||||
delay(0);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -135,7 +135,9 @@ void WebSocketsServer::close(void) {
|
|||||||
*/
|
*/
|
||||||
void WebSocketsServer::loop(void) {
|
void WebSocketsServer::loop(void) {
|
||||||
if(_runnning) {
|
if(_runnning) {
|
||||||
|
WEBSOCKETS_YIELD();
|
||||||
handleNewClients();
|
handleNewClients();
|
||||||
|
WEBSOCKETS_YIELD();
|
||||||
handleClientData();
|
handleClientData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -231,9 +233,7 @@ bool WebSocketsServer::broadcastTXT(uint8_t * payload, size_t length, bool heade
|
|||||||
ret = false;
|
ret = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if(WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266)
|
WEBSOCKETS_YIELD();
|
||||||
delay(0);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -294,9 +294,7 @@ bool WebSocketsServer::broadcastBIN(uint8_t * payload, size_t length, bool heade
|
|||||||
ret = false;
|
ret = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if(WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266)
|
WEBSOCKETS_YIELD();
|
||||||
delay(0);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -343,9 +341,7 @@ bool WebSocketsServer::broadcastPing(uint8_t * payload, size_t length) {
|
|||||||
ret = false;
|
ret = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if(WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266)
|
WEBSOCKETS_YIELD();
|
||||||
delay(0);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -660,8 +656,8 @@ void WebSocketsServer::handleNewClients(void) {
|
|||||||
tcpClient->stop();
|
tcpClient->stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if(WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266) || (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP32)
|
WEBSOCKETS_YIELD();
|
||||||
delay(0);
|
#if(WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266) || (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP32)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -694,9 +690,7 @@ void WebSocketsServer::handleClientData(void) {
|
|||||||
handleHBPing(client);
|
handleHBPing(client);
|
||||||
handleHBTimeout(client);
|
handleHBTimeout(client);
|
||||||
}
|
}
|
||||||
#if(WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266)
|
WEBSOCKETS_YIELD();
|
||||||
delay(0);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user