mirror of
https://github.com/Links2004/arduinoWebSockets.git
synced 2025-07-14 15:56:30 +02:00
@ -254,7 +254,11 @@ void WebSockets::handleWebsocket(WSclient_t * client) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(mask) {
|
if(mask) {
|
||||||
client->tcp.read(maskKey, 4);
|
if(!readWait(client, maskKey, 4)) {
|
||||||
|
//timeout
|
||||||
|
clientDisconnect(client, 1002);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(payloadLen > 0) {
|
if(payloadLen > 0) {
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define WEBSOCKETS_MAX_DATA_SIZE (15*1024)
|
#define WEBSOCKETS_MAX_DATA_SIZE (15*1024)
|
||||||
#define WEBSOCKETS_TCP_TIMEOUT (1000)
|
#define WEBSOCKETS_TCP_TIMEOUT (1500)
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
WSC_NOT_CONNECTED,
|
WSC_NOT_CONNECTED,
|
||||||
|
@ -218,13 +218,17 @@ void WebSocketsClient::clientDisconnect(WSclient_t * client) {
|
|||||||
*/
|
*/
|
||||||
bool WebSocketsClient::clientIsConnected(WSclient_t * client) {
|
bool WebSocketsClient::clientIsConnected(WSclient_t * client) {
|
||||||
|
|
||||||
if(client->status != WSC_NOT_CONNECTED && client->tcp.connected()) {
|
if(client->tcp.connected()) {
|
||||||
return true;
|
if(client->status != WSC_NOT_CONNECTED) {
|
||||||
}
|
return true;
|
||||||
|
}
|
||||||
if(client->status != WSC_NOT_CONNECTED) {
|
} else {
|
||||||
// cleanup
|
// client lost
|
||||||
clientDisconnect(&_client);
|
if(client->status != WSC_NOT_CONNECTED) {
|
||||||
|
DEBUG_WEBSOCKETS("[WS-Client] connection lost.\n");
|
||||||
|
// do cleanup
|
||||||
|
clientDisconnect(client);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -302,13 +302,17 @@ void WebSocketsServer::clientDisconnect(WSclient_t * client) {
|
|||||||
*/
|
*/
|
||||||
bool WebSocketsServer::clientIsConnected(WSclient_t * client) {
|
bool WebSocketsServer::clientIsConnected(WSclient_t * client) {
|
||||||
|
|
||||||
if(client->status != WSC_NOT_CONNECTED && client->tcp.connected()) {
|
if(client->tcp.connected()) {
|
||||||
return true;
|
if(client->status != WSC_NOT_CONNECTED) {
|
||||||
}
|
return true;
|
||||||
|
}
|
||||||
if(client->status != WSC_NOT_CONNECTED) {
|
} else {
|
||||||
// cleanup
|
// client lost
|
||||||
clientDisconnect(client);
|
if(client->status != WSC_NOT_CONNECTED) {
|
||||||
|
DEBUG_WEBSOCKETS("[WS-Server][%d] client connection lost.\n", client->num);
|
||||||
|
// do cleanup
|
||||||
|
clientDisconnect(client);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user