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