Use a fixed 10 packets per second for ping packet
This commit is contained in:
parent
86957c9d5e
commit
c46a5eafdb
@ -19,7 +19,6 @@
|
||||
#ifndef HEADER_NETWORK_TIMER_SYNCHRONIZER_HPP
|
||||
#define HEADER_NETWORK_TIMER_SYNCHRONIZER_HPP
|
||||
|
||||
#include "config/user_config.hpp"
|
||||
#include "network/stk_host.hpp"
|
||||
#include "utils/log.hpp"
|
||||
#include "utils/time.hpp"
|
||||
@ -70,8 +69,8 @@ public:
|
||||
const uint64_t cur_time = StkTime::getRealTimeMs();
|
||||
// Discard too close time compared to last ping
|
||||
// (due to resend when packet loss)
|
||||
const uint64_t frequency = (uint64_t)((1.0f /
|
||||
(float)(stk_config->m_network_state_frequeny)) * 1000.0f) / 2;
|
||||
// 10 packets per second as seen in STKHost
|
||||
const uint64_t frequency = (uint64_t)((1.0f / 10.0f) * 1000.0f) / 2;
|
||||
if (!m_times.empty() &&
|
||||
cur_time - std::get<2>(m_times.back()) < frequency)
|
||||
return;
|
||||
|
@ -735,11 +735,10 @@ void STKHost::mainLoop()
|
||||
if (sl && (!sl->isRacing() || sl->allowJoinedPlayersWaiting()) &&
|
||||
last_ping_time < StkTime::getRealTimeMs())
|
||||
{
|
||||
// If not racing, send an reliable packet at the same rate with
|
||||
// state exchange to keep enet ping accurate
|
||||
// If not racing, send an reliable packet at the 10 packets
|
||||
// per second, which is for accurate ping calculation by enet
|
||||
last_ping_time = StkTime::getRealTimeMs() +
|
||||
(uint64_t)((1.0f /
|
||||
(float)(stk_config->m_network_state_frequeny)) * 1000.0f);
|
||||
(uint64_t)((1.0f / 10.0f) * 1000.0f);
|
||||
need_ping = true;
|
||||
}
|
||||
|
||||
|
@ -178,7 +178,8 @@ uint32_t STKPeer::getPing()
|
||||
if (NetworkConfig::get()->isServer())
|
||||
{
|
||||
// Average ping in 5 seconds
|
||||
const unsigned ap = stk_config->m_network_state_frequeny * 5;
|
||||
// Frequency is 10 packets per second as seen in STKHost
|
||||
const unsigned ap = 10 * 5;
|
||||
m_previous_pings.push_back(m_enet_peer->roundTripTime);
|
||||
while (m_previous_pings.size() > ap)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user