public override void Close()
 {
     _lock.AcquireWriterLock();
     try
     {
         if (IsClosed || IsClosing)
         {
             return; // Already shutting down.
         }
         SetIsClosing(true);
     }
     finally
     {
         _lock.ReleaseWriterLock();
     }
     FluorineRtmpContext.Initialize(this);
     base.Close();
     _rtmpServer.OnConnectionClose(this);
     _rtmpNetworkStream.Close();
     _lock.AcquireWriterLock();
     try
     {
         SetIsClosed(true);
         SetIsClosing(false);
         SetIsDisconnecting(false);
     }
     finally
     {
         _lock.ReleaseWriterLock();
     }
 }