try to improve

see: #23
This commit is contained in:
Markus Sattler
2015-12-05 11:43:03 +01:00
parent 92a63e9129
commit 7a22dad9d1
4 changed files with 28 additions and 16 deletions

View File

@ -254,7 +254,11 @@ void WebSockets::handleWebsocket(WSclient_t * client) {
}
if(mask) {
client->tcp.read(maskKey, 4);
if(!readWait(client, maskKey, 4)) {
//timeout
clientDisconnect(client, 1002);
return;
}
}
if(payloadLen > 0) {

View File

@ -44,7 +44,7 @@
#endif
#define WEBSOCKETS_MAX_DATA_SIZE (15*1024)
#define WEBSOCKETS_TCP_TIMEOUT (1000)
#define WEBSOCKETS_TCP_TIMEOUT (1500)
typedef enum {
WSC_NOT_CONNECTED,

View File

@ -218,13 +218,17 @@ void WebSocketsClient::clientDisconnect(WSclient_t * client) {
*/
bool WebSocketsClient::clientIsConnected(WSclient_t * client) {
if(client->status != WSC_NOT_CONNECTED && client->tcp.connected()) {
if(client->tcp.connected()) {
if(client->status != WSC_NOT_CONNECTED) {
return true;
}
} else {
// client lost
if(client->status != WSC_NOT_CONNECTED) {
// cleanup
clientDisconnect(&_client);
DEBUG_WEBSOCKETS("[WS-Client] connection lost.\n");
// do cleanup
clientDisconnect(client);
}
}
return false;
}

View File

@ -302,14 +302,18 @@ void WebSocketsServer::clientDisconnect(WSclient_t * client) {
*/
bool WebSocketsServer::clientIsConnected(WSclient_t * client) {
if(client->status != WSC_NOT_CONNECTED && client->tcp.connected()) {
if(client->tcp.connected()) {
if(client->status != WSC_NOT_CONNECTED) {
return true;
}
} else {
// client lost
if(client->status != WSC_NOT_CONNECTED) {
// cleanup
DEBUG_WEBSOCKETS("[WS-Server][%d] client connection lost.\n", client->num);
// do cleanup
clientDisconnect(client);
}
}
return false;
}