Beispiel #1
0
        private void UpdateSender()
        {
            if (sender != null)
            {
                sender.Update();

                //actively sending?
                if (mIsActive)
                {
                    bool wasFull = mBufferFull;
                    //reset buffer full flag. set to true again if send fails
                    mBufferFull = false;
                    //timer used to balance out the messages to avoid sending in bulk
                    mTargetPackagesCounter += Time.unscaledDeltaTime;
                    float secPerPacket = 1.0f / PacketsPerSecond;
                    while (mTargetPackagesCounter > secPerPacket)
                    {
                        mBuffered = sender.GetBufferedAmount(mToEcho, SEND_RELIABLE);
                        bool successful = false;
                        if ((mBuffered + buffer.Length) < MAX_BUFFER)
                        {
                            //false here means WebRTC refused to send either internal
                            //buffer is full (MAX_BUFFER bigger than supported allowed buffer)
                            //or it might have just disconnected and failed to send
                            successful = SendOneMessage();
                            if (successful == false)
                            {
                                Debug.LogWarning("Send returned false. Either internal WebRTC buffer is full or disconnect / internal error");
                            }
                        }

                        if (successful)
                        {
                            mNumberSent++;
                            mSumBytesSent          += buffer.Length;
                            mTargetPackagesCounter -= secPerPacket;
                        }
                        else
                        {
                            mBufferFull = true;
                            mBufferFullCount++;
                            if (BenchmarkConfig.VERBOSE && wasFull == false)
                            {
                                Debug.LogWarning("sender: Buffer full. Pause sending");
                            }
                            mTargetPackagesCounter = 0;
                            break;
                        }
                    }
                }
            }
        }
Beispiel #2
0
        private void Update()
        {
            mAverageTimer += Time.unscaledDeltaTime;
            if (mAverageTimer > 4)
            {
                //watch out we round down a few bytes here
                mStatAvgReceived = (int)(mSumBytesRec / mAverageTimer);

                mSumBytesRec  = 0;
                mAverageTimer = 0;
            }


            if (echo != null)
            {
                echo.Update();

                if (mToSender != ConnectionId.INVALID && mActive)
                {
                    mBuffered = echo.GetBufferedAmount(mToSender, true);
                }
            }
        }