Esempio n. 1
0
 /// <summary>
 /// 释放IUserToken
 /// </summary>
 /// <param name="userToken"></param>
 public bool Free(IUserToken userToken)
 {
     if (userToken == null)
     {
         return(false);
     }
     _sessionCache.DelWithoutEvent(userToken.ID);
     try
     {
         if (userToken.Socket != null && userToken.Socket.Connected)
         {
             try
             {
                 userToken.Socket.Close();
             }
             catch { }
         }
     }
     catch { }
     _bufferManager.FreeBuffer(userToken.ReadArgs);
     _argsPool.Enqueue(userToken.ReadArgs);
     _argsPool.Enqueue(userToken.WriteArgs);
     _userTokenPool.Enqueue(userToken);
     return(true);
 }