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);
}
}
}
}