network changes

This commit is contained in:
milek7
2019-04-03 01:28:46 +02:00
parent 1b5c3ef306
commit 4344ec192a
5 changed files with 8 additions and 4 deletions

View File

@@ -338,6 +338,7 @@ eu07_application::release_python_lock() {
void
eu07_application::exit() {
m_network.reset();
SafeDelete( simulation::Train );
SafeDelete( simulation::Region );

View File

@@ -11,6 +11,7 @@ network::tcp::connection::connection(asio::io_context &io_ctx, bool client, size
network::tcp::connection::~connection()
{
m_socket.shutdown(m_socket.shutdown_both);
m_socket.close();
}

View File

@@ -188,13 +188,14 @@ std::tuple<double, double, command_queue::commands_map> network::client::get_nex
consume_counter += speed;
}
if (size > MAX_BUFFER_SIZE || consume_counter > mult) {
float last_rcv_diff = std::chrono::duration_cast<std::chrono::duration<float>>(now - last_rcv).count();
if (size > MAX_BUFFER_SIZE || consume_counter > mult || last_rcv_diff > 3.0f) {
if (consume_counter > mult) {
consume_counter = std::clamp(consume_counter - mult, -MAX_BUFFER_SIZE, MAX_BUFFER_SIZE);
}
delta_queue.pop();
last_update = now;
return std::make_tuple(entry.dt, entry.sync, entry.commands);
} else {
@@ -246,6 +247,7 @@ void network::client::handle_message(std::shared_ptr<connection> conn, const mes
auto delta = dynamic_cast<const frame_info&>(msg);
delta_queue.push(delta);
last_rcv = std::chrono::high_resolution_clock::now();
}
}

View File

@@ -90,7 +90,7 @@ namespace network
float jitteriness = 1.0f;
float consume_counter = 0.0f;
std::chrono::high_resolution_clock::time_point last_update;
std::chrono::high_resolution_clock::time_point last_rcv;
std::chrono::high_resolution_clock::time_point last_frame;
std::chrono::high_resolution_clock::duration frame_time;