internal void TryLink(string terminalPhoneNo, IJT1078Session session) { DateTime curretDatetime = DateTime.Now; if (TerminalPhoneNoSessions.TryGetValue(terminalPhoneNo, out IJT1078Session cacheSession)) { if (session.SessionID != cacheSession.SessionID) { //从转发到直连的数据需要更新缓存 session.ActiveTime = curretDatetime; TerminalPhoneNoSessions.TryUpdate(terminalPhoneNo, session, cacheSession); //会话通知 SessionNoticeService.SessionNoticeBlockingCollection.Add((JT1078GatewayConstants.SessionOnline, terminalPhoneNo, session.TransportProtocolType.ToString())); } else { cacheSession.ActiveTime = curretDatetime; TerminalPhoneNoSessions.TryUpdate(terminalPhoneNo, cacheSession, cacheSession); } } else { session.TerminalPhoneNo = terminalPhoneNo; if (TerminalPhoneNoSessions.TryAdd(terminalPhoneNo, session)) { //会话通知 SessionNoticeService.SessionNoticeBlockingCollection.Add((JT1078GatewayConstants.SessionOnline, terminalPhoneNo, session.TransportProtocolType.ToString())); } } }
internal bool TryAdd(IJT1078Session session) { return(Sessions.TryAdd(session.SessionID, session)); }