コード例 #1
0
ファイル: Global.cs プロジェクト: zichengfeng/TaoShang
        internal static ISession GetSession(ISessionIdMetaData sessionId)
        {
            if (_tcpServer == null ||
                _tcpServer.SessionAcceptor == null ||
                !_tcpServer.SessionAcceptor.Started)
            {
                return(null);
            }

            return(_tcpServer.SessionAcceptor.GetConnectedSession(sessionId));
        }
コード例 #2
0
        public ISession GetConnectedSession(ISessionIdMetaData sessionId)
        {
            if (sessionId == null)
            {
                return(null);
            }

            _connectedSessionLock.EnterReadLock();

            try
            {
                return(_connectedSessions.Values.FirstOrDefault(session =>
                {
                    return sessionId.Equals(session.SessionId);
                }));
            }
            finally
            {
                _connectedSessionLock.ExitReadLock();
            }
        }
コード例 #3
0
        public bool Equals(ISessionIdMetaData other)
        {
            var otherUser = other as UserSessionIdMetaData;

            if (otherUser == null)
            {
                return(false);
            }

            if (object.ReferenceEquals(this, other))
            {
                return(true);
            }

            if ((otherUser.Id == this.Id || string.Equals(otherUser.Account,
                                                          this.Account, StringComparison.CurrentCultureIgnoreCase)) &&
                otherUser.IsClient == this.IsClient)
            {
                return(true);
            }

            return(false);
        }