For now, don't enforce ping timeouts. Just sending the pings is sufficient

to cause dead connections to break.
This commit is contained in:
JoelKatz
2013-02-22 09:33:26 -08:00
parent 47425827d3
commit cb90b717cc
2 changed files with 9 additions and 8 deletions

View File

@@ -142,16 +142,18 @@ public:
return jvResult;
}
bool onPingTimer()
bool onPingTimer(std::string&)
{
#ifdef DISCONNECT_ON_WEBSOCKET_PING_TIMEOUTS
if (mPinged)
return true; // causes connection to close
#endif
mPinged = true;
setPingTimer();
return false; // causes ping to be sent
}
void onPong()
void onPong(const std::string&)
{
mPinged = false;
}

View File

@@ -94,15 +94,14 @@ public:
return;
ptr = it->second;
}
if (ptr->onPingTimer())
std::string data("ping");
if (ptr->onPingTimer(data))
{
cLog(lsWARNING) << "Connection pings out";
cpClient->close(websocketpp::close::status::PROTOCOL_ERROR, "ping timeout");
}
else
{
cpClient->ping("ping");
}
cpClient->ping(data);
}
void on_send_empty(connection_ptr cpClient)
@@ -126,7 +125,7 @@ public:
mMap[cpClient] = boost::make_shared< WSConnection<endpoint_type> >(this, cpClient);
}
void on_pong(connection_ptr cpClient, std::string)
void on_pong(connection_ptr cpClient, std::string data)
{
wsc_ptr ptr;
{
@@ -136,7 +135,7 @@ public:
return;
ptr = it->second;
}
ptr->onPong();
ptr->onPong(data);
}
void on_close(connection_ptr cpClient)