コード例 #1
0
            internal void OnDataOrHeadersReceived(Http2Connection connection)
            {
                if (_state != State.Waiting)
                {
                    return;
                }

                long now     = Stopwatch.GetTimestamp();
                bool initial = _initialBurst > 0;

                if (initial || now - _pingSentTimestamp > PingIntervalInTicks)
                {
                    if (initial)
                    {
                        _initialBurst--;
                    }

                    // Send a PING
                    _pingCounter--;
                    if (NetEventSource.Log.IsEnabled())
                    {
                        connection.Trace($"[FlowControl] Sending RTT PING with payload {_pingCounter}");
                    }
                    connection.LogExceptions(connection.SendPingAsync(_pingCounter, isAck: false));
                    _pingSentTimestamp = now;
                    _state             = State.PingSent;
                }
            }
コード例 #2
0
            internal void OnDataOrHeadersReceived(Http2Connection connection)
            {
                if (_state != State.Waiting)
                {
                    return;
                }

                long now     = Stopwatch.GetTimestamp();
                bool initial = _initialBurst > 0;

                if (initial || now - _pingSentTimestamp > PingIntervalInTicks)
                {
                    if (initial)
                    {
                        _initialBurst--;
                    }

                    // Send a PING
                    _pingCounter--;
                    connection.LogExceptions(connection.SendPingAsync(_pingCounter, isAck: false));
                    _pingSentTimestamp = now;
                    _state             = State.PingSent;
                }
            }