Beispiel #1
0
        public void OnPong(VNetMessagePongClient pong)
        {
            if (pong._client.GetUID() != m_client.GetUID())
            {
                return;
            }

            Console.WriteLine(pong._client.GetName() + " - pong");

            m_delay = VNetCommon.NET_CLIENT_PING_WAIT_TIME;

            double timeDif = VNetTimer.Inst.GetSystemTimeNow() - pong.timeSent;

            m_times[m_timeQueueIndex] = timeDif;
            m_timeQueueIndex          = (m_timeQueueIndex + 1) % m_times.Length;
            m_timeAverage             = 0;
            for (int i = 0; i < m_times.Length; i++)
            {
                m_timeAverage += m_times[i];
            }
            m_timeAverage /= m_times.Length;

            if (timeDif < m_timeBest)
            {
                m_timeBest = timeDif;
            }
        }
Beispiel #2
0
        public override VNetMessage Clone()
        {
            VNetMessagePongClient clone = (VNetMessagePongClient)base.Clone();

            clone.timeSent = timeSent;
            return(clone);
        }
Beispiel #3
0
        // Listener
        public void OnPing(VNetMessagePingClient ping)
        {
            if (ping._client.GetUID() != m_client.GetUID())
            {
                return;
            }

            Console.WriteLine(ping._client.GetName() + " - ping");

            // Send a pong response
            VNetMessagePongClient pong = new VNetMessagePongClient();

            pong.timeSent = ping.timeSent;
            m_client.SendNetMessage(pong, false);
        }