CSharpRTMP.Core.Protocols.Rtmfp.OutboundHandshake.Manage C# (CSharp) Method

Manage() public method

public Manage ( ) : void
return void
        public override void Manage()
        {
            if (IsEnqueueForDelete) return;
            lock (Writer)
            {
            if (Checked && RecTimestamp.ElapsedMilliseconds > KeepAliveServer)
            {
                WriteMessage(0x01, 0);
                Flush(0x09, true, PrevAesType);
                Logger.Debug("keepAlive?");
                RecTimestamp.Restart();
            }
            foreach (var flowWriterKey in FlowWriters.Keys.ToArray())
            {
                var flowWriter = FlowWriters[flowWriterKey];
                try
                {
                    flowWriter.Manage();
                }
                catch (Exception ex)
                {
                    if (flowWriter.Critical)
                    {
                        Fail(ex.Message);
                        break;
                    }
                    continue;
                }
                if (flowWriter.Consumed)
                {
                    FlowWriters.Remove(flowWriterKey);
                }
            }

            if (!_failed) Peer.OnManage();
            try
            {
                SFlush(true);
            }
            catch (Exception)
            {
                Writer.Clear(11);
            }
            }
        }
    }