Fixed some errors related to disconnecting
This commit is contained in:
parent
9649135f43
commit
65436429b8
7 changed files with 119 additions and 56 deletions
|
|
@ -45,12 +45,22 @@ void NetClient::update() {
|
|||
if(isDisconnected)
|
||||
return;
|
||||
if(std::chrono::steady_clock::now() - lastMessageTime >= NetLibrary::TIMEOUT_DURATION) {
|
||||
Logger::get().log("INFO", "Connection timed out");
|
||||
Logger::get().log("INFO", "[NetClient::update] Connection timed out");
|
||||
isDisconnected = true;
|
||||
return;
|
||||
}
|
||||
parse_received_messages();
|
||||
send_queued_messages();
|
||||
try {
|
||||
parse_received_messages();
|
||||
send_queued_messages();
|
||||
}
|
||||
catch(const std::exception& e) {
|
||||
Logger::get().log("INFO", "[NetClient::update] Exception thrown while parsing and sending messages: " + std::string(e.what()));
|
||||
isDisconnected = true;
|
||||
}
|
||||
catch(...) {
|
||||
Logger::get().log("INFO", "[NetClient::update] Unknown exception thrown while parsing and sending messages.");
|
||||
isDisconnected = true;
|
||||
}
|
||||
}
|
||||
|
||||
void NetClient::parse_received_messages() {
|
||||
|
|
|
|||
|
|
@ -26,8 +26,20 @@ void NetServer::update() {
|
|||
if(client->setToDisconnect)
|
||||
disconnectCallback(client);
|
||||
else {
|
||||
client->parse_received_messages(*this);
|
||||
client->send_queued_messages(*this);
|
||||
try {
|
||||
client->parse_received_messages(*this);
|
||||
client->send_queued_messages(*this);
|
||||
}
|
||||
catch(const std::exception& e) {
|
||||
Logger::get().log("INFO", "[NetServer::update] Exception thrown while parsing and sending messages for a client: " + std::string(e.what()));
|
||||
client->setToDisconnect = true;
|
||||
disconnectCallback(client);
|
||||
}
|
||||
catch(...) {
|
||||
Logger::get().log("INFO", "[NetServer::update] Unknown exception thrown while parsing and sending messages for a client.");
|
||||
client->setToDisconnect = true;
|
||||
disconnectCallback(client);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue